1 // 插入排序(抓牌)
2
3 function insert(arr) {
4 var handlArr = []
5 handlArr.push(arr[0]) // 将数组的第一张牌放入手里handlArr
6 for(var i = 0; i<arr.length;i++) {
7 var item = arr[i] // 本次抓住的这张牌
8 for(var t = handlArr.length-1;t >= 0;t--) {
9 if (item > handlArr[t]) { // 比较抓住的牌与手里有的牌进行比较,如果新抓的牌大了,则放到handlArr[t]这张牌后边
10 handlArr.splice(t+1,0,item)
11 break;
12 }
13 if(t === 0) { // 如果新抓的牌是最小的,则放到最前面
14 handlArr.unshift(item)
15 }
16 }
17 }
18 return handlArr
19 }
20 console.log(insert([2,3,11,4,66,77,85,3,1,23]))
1 //比较排序
2 var sort = [22,33,11,44,33,32,76,78,65,99];
3 for(var i=0;i<sort.length;i++){
4 for(var t=0;t<sort.length-1;t++){
5 if(sort[i]<sort[t]){
6 var temp = sort[i];
7 sort[i]=sort[t];
8 sort[t]=temp;
9 }
10 }
11 }
12 console.log(sort)
1 //sort排序
2 var sort1 = [22,33,11,44,33,32,76,78,65,99];
3 function fr(a,b){
4 return a-b;
5 }
6 console.log(sort1.sort(fr))
1 // 快速排序
2
3 var arr = [111,2,3,44,55,76,33,22]
4
5 function quick(arr){
6 if(arr.length <= 1) {
7 return arr
8 }
9 var centerIndex = Math.floor(arr.length/2),
10 centerVal = arr.splice(centerIndex,1)[0];
11 var leftArr = [],rightArr = [];
12 for(var i = 0;i<arr.length;i++) {
13 var curval = arr[i]
14 curval < centerVal? leftArr.push(curval) : rightArr.push(curval)
15 }
16 return quick(leftArr).concat(centerVal,quick(rightArr))
17 }
18 console.log(quick(arr)) // 2, 3, 22, 33, 44, 55, 76, 111