js 几种排序方法
1、冒泡排序
var arr = [9, 7, 5, 3, 1];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i;j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
2、选择排序
function selectSort(arr){
for(var i=0;i<arr.length-1;i++){
var minIndex = i;
for(var j=i+1;j<arr.length;j++){
if(arr[minIndex] > arr[j]){
minIndex = j;
}
}
if(i!=minIndex){
var tmp = arr[minIndex];
arr[minIndex] = arr[i] ;
arr[i] = tmp;
}
}
return arr; }
console.log(selectSort(arr));
3.快速排序
var quickSort = function(arr){
if(arr.length <=1){
return arr;
}
var pivotIndex = Math.floor(arr.length/2);//找基准点
var pivot = arr.splice(pivotIndex,1)[0];//从pivotIndex位开始删除1位 6
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if(arr[i] < pivot){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot],quickSort(right));//拼接 }
console.log(quickSort([3,5,1,6,8,2]));
4.数组的排序方法 sort()+比较函数
var arr=[33,44,11,22];
arr.sort(function(num1,num2){
return num1-num2;
}) //[11,22,33,44] //整个方法是按照 ASCII码进行比较的。
js 几种排序方法的更多相关文章
- java数组中的三种排序方法中的冒泡排序方法
我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...
- 2.32 js几种定位方法总结
2.32 js几种定位方法总结 前言本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一.以下总结了5种js定位的方法除了id是定位到的是单个element元素对象, ...
- AJPFX关于Java中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比 ...
- ch1_6_1求解两种排序方法问题
考拉有n个字符串字符串,任意两个字符串长度都是不同的. 考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序.例如: "car" < "carr ...
- python 两种排序方法 sort() sorted()
python中有两种排序方法,list内置sort()方法或者python内置的全局sorted()方法 区别为: sort()方法对list排序会修改list本身,不会返回新list.sort()只 ...
- c#实现几种排序方法
插入排序 1.简介 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序 ...
- JAVA中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进 ...
- js数组sort排序方法的算法
说明一下,ECMAScript没有定义使用哪种排序算法,各个浏览器的实现方式会有不同.火狐中使用的是归并排序,下面是Chrome的sort排序算法的实现. sort方法源码 DEFINE_METHOD ...
- PHP的几种排序方法
<?php /** * PHP最常用的四个排序方法及二种查找方法 * 下面的排序方法全部都通过测试 * auther : soulence * date : 2015/06/20 */ //PH ...
随机推荐
- NSIS 设置系统变量
定义 ; include for some of the windows messages defines !include "winmessages.nsh" ; HKLM (a ...
- 有关datatables的非常规教程
有关datatables的非常规教程 1. //$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust(); table. ...
- 地牢逃脱 (BFS)
题意:给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指 ...
- ACdream1032 Component 树形DP
思路:dp[i][j]表示以i为根结点有j个连通节点的最小和, 当进行状态转移时需要利用01背包,节点u下面有多个子节点,每个子节点可以最多可以贡献cnt[v]个节点,cnt[v]表示以v为根结点的树 ...
- Ironic中pxe driver和agent driver的区别
历史问题: 以pxe_ipmitool 和agent_ipmitool为例,看起来似乎前者不使用ironic-python-agent,后者使用,但是实际上两者都使用ironic-python-age ...
- Dropout
参数正则化方法 - Dropout 受人类繁衍后代时男女各一半基因进行组合产生下一代的启发,论文(paper.pdf)提出了Dropout. Dropout是一种在深度学习环境中应用的正规化手段.它是 ...
- 安装VMware Workstation提示the msi failed的解决办法
有朋友安装VMware Workstation时出现报错,提示the msi failed等信息,原来他以前安装过绿色版.优化版的VM,但删掉后重装VM就会有这样的报错提示,如果你也遇到了相同的困扰, ...
- P3
package p3.hadoop.mapred; import java.io.IOException; import java.io.InputStream; import org.apache. ...
- 【Unity3D】Unity3D开发《我的世界》之三、创建一个Chunk
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_03.html 一.引入int类型的Vector3 我们都知道Unity3D里Vec ...
- 使用sql语句获取数据库表的信息
下面的sql语句可以查看表的信息.其中modify_date和create_date可以根据表的修改时间来查看.如果不需要删除后,就能看到所有表的字段信息 ) PERCENT d.name AS 表名 ...