JS排序算法

2017-09-11  本文已影响0人  上善若水_900e

冒泡排序:

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;

}

上一篇下一篇

猜你喜欢

热点阅读