|
数组的7种排序汇总
1、桶排序(桶中出现的数组元素都做个标记1,然后将桶数组中有1标记的元素依次打印)
[JavaScript] 纯文本查看 复制代码
|
1
2
3
4
5
6
7
8
9
|
var arr2=[];
for(var i=0;i<arr.length;i++){
var key=arr[i];
arr2[key]=1;
}
for(var j in arr2){
console.log(j);
}
|
2、冒泡排序(每一趟找出最大的)
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
var arr=[1,5,7,9,16,2,4];
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
|
3、选择排序(假定某个位置的值是最小值)
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
|
var arr=[1,23,5,8,11,78,45];
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
|
4、快速排序(一拆为二)
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
|
var arr=[1,23,5,8,11,78,45];
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
|
5、插入排序
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
|
var arr=[45,1,32,21,56,87,43,12,34,45];
for(var i=0;i<arr.length;i++){
var n=i;
while(arr[n]>arr[n+1] && n>=0){
var temp=arr[n];
arr[n]=arr[n+1];
arr[n+1]=temp;
n--;
}
}
|
6、希尔排序(性能最好的排序)
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
function xier(arr){
var interval = parseInt(arr.length / 2);
while(interval > 0){
for(var i = 0 ; i < arr.length ; i ++){
var n = i;
while(arr[n] < arr[n - interval] && n > 0){
var temp = arr[n];
arr[n] = arr[n - interval];
arr[n - interval] = temp;
n = n - interval;
}
}
interval = parseInt(interval / 2);
}
return arr;
}
xier([12,9,38,44,7,98,35,59,49,88,38]);
|
7、sort排序
[JavaScript] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
var arr=[1,5,7,9,16,2,4];
arr.sort(function(a,b){
return b-a;
})
var arr = [
{name:'syy',age:0},
{name:'wxy',age:18},
{name:'slj',age:8},
{name:'wj',age:20}
];
function compare(property){
return function(a,b){
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
arr.sort(compare('age'))
|
--------------------- 作者:羊二哥 来源:CSDN 原文:https://blog.csdn.net/weixin_43586120/article/details/87972629
版权声明:本文为博主原创文章,转载请附上博文链接!
|