1.冒泡排序
function foo1(array){
for(let i =0;i<array.length;i++){
for(let j=0;j<array.length;j++){
if(array[i]<array[j]){
let temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
return array
}
2.快速排序
var values=[]
function foo2(array){
if(array.length>1){
let key = ~~(array.length/2);
let list1 = []
let list2 = []
for(let o=0;o<array.length;o++){
if(array[o]<array[key]){
list1.push(array[o])
}
if(array[o]>array[key]){
list2.push(array[o])
}
}
list1.length!==0&&foo2(list1)
values.push(array[key])
list2.length!==0&&foo2(list2);
}else{
values.push(array[0])
}
}
3.选择排序
var example=[8,94,15,88,55,76,21,39];
function selectSort(arr){
var len=arr.length;
var minIndex,temp;
console.time('选择排序耗时');
for(i=0;i<len-1;i++){
minIndex=i;
for(j=i+1;j<len;j++){
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
console.timeEnd('选择排序耗时');
return arr;
}
5、不需要借助第三个临时变量,实现两个变量的交换
function swap(a,b){
b=b-a;
a=a+b;
b=a-b;
return [a,b];
}
6、数组按属性排序
function compare(po){
return function(a,b){
let temp1 = a[po];
let temp2 = b[po];
return temp1-temp2
}
}
var list = [{
id:'a1',
num:21
},
{
id:'a2',
num:2211
},
{
id:'a3',
num:213
},
{
id:'a4',
num:221
},
{
id:'a5',
num:2111
}];
list.sort(a('id'))
浙公网安备 33010602011771号