JavaScript排序算法

JavaScript中几种排序算法的实现

插入排序

1
2
3
4
5
6
7
8
9
10
function insertionSort(arr){
var i,len=arr.length;
for (i=1;i<len;i++) {
if(i>=1 && arr[i-1]>arr[i]){
arr[i]=arr[i-1];
i--;
}
}
return arr;
}

选择排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function selectionSort(arr){
var i,
j,
minIndex,
len=arr.length;
for (i=0;i<len-1;i++) {
minIndex=i;
for (j=i+1;j<len;j++) {
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
var temp=arr[i]
arr[i]=arr[minIndex]
arr[minIndex]=temp;
}
return arr;
}

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function bubbleSort(arr){
var i,
j,
len=arr.length;
for (i=0;i<len-1;i++) {
for (j=0;j<len-1-i;j++) {
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}