js 排序算法
冒泡排序:
1 | var array = [{"name" : "aa",index : 100},{"name" : "aa",index : 200},{"name" : "aa",index : 300}]; |
快速排序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16var arr = [{"name" : "aa",index : 200},{"name" : "aa",index : 100},{"name" : "aa",index : 300}];
function qSort(arr,i,j){
if(i>=j) return;
var tempi=i,tempj=j;
var key=arr[i];
while(i<j){
while(i<j&&arr[j].index>key.index) j--;//从右向左找第1个小于key的数
if(i<j) arr[i++]=arr[j];
while(i<j&&arr[i].index<key.index) i++;//从左向右找第1个大于key的数
if(i<j) arr[j--]=arr[i];
}
arr[i]=key;
qSort(arr,tempi,i-1);
qSort(arr,i+1,tempj);
}
qSort(arr,0,2)
选择排序:1
2
3
4
5
6
7
8
9
10
11
12var min,len = arr.length;
for (var i = 0 ; i < len - 1 ; i++) {
min = i;
for (var j = i + 1 ; j < len ; j++) {
if (arr[j].index < arr[min].index) {
min = j;
}
}
var temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}