冒泡排序:
vararray = [{"name":"aa",index:100},{"name":"aa",index:200},{"name":"aa",index:300}];
varlen = array.length;
for(vari =0; i < len -1; i++) {//-1 是为了j+1不会发生数组越界,且不会和自己比较
for(varj =0; j < len - i -1;j++) {
if(array[j] < array[j+1]) {
vartemp = a[j];
a[j] = a[j+1];
a[j+1] = temp;//交换位置
}
}
}
快速排序:
vararr = [{"name":"aa",index:200},{"name":"aa",index:100},{"name":"aa",index:300}];
functionqSort(arr,i,j){
if(i>=j)return;
vartempi=i,tempj=j;
varkey=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)
选择排序:
varmin,len = arr.length;
for(vari =0; i < len -1; i++) {
min = i;
for(varj = i +1; j < len ; j++) {
if(arr[j].index < arr[min].index) {
min = j;
}
}
vartemp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}