js数组排序
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