首页 > 代码库 > javascript学习笔记数组排序
javascript学习笔记数组排序
数组排序
1、冒泡排序 最常用也是最容易理解的排序方式(一个嵌套的循环比较每一次的大小根据设定的条件来交换位置)。
1 function bubblesort(ary) { 2 for (var i = 0; i < ary.length - 1; i++) { 3 for (var j = 0; j < ary.length - i - 1; j++) { 4 if (ary[j] > ary[j + 1]) { 5 var temp = ary[j]; 6 ary[j] = ary[j + 1]; 7 ary[j + 1] = temp; 8 } 9 }10 }11 }
2、插入排序 通过每一个比较然后将比较后大的或者小的值插入到前面一个数的位置,在当前位置上的值下标往后移一位
1 function insertionsort() { 2 if (arr.length > 1) { 3 var temp = null; 4 for (var i = 1; i < arr.length; i++) { 5 if (arr[i]<arr[i-1]) { 6 temp = arr[i]; 7 var p = i - 1; 8 while (p >= 0 && arr[p] > temp) { 9 arr[p + 1] = arr[p];10 p--;11 }12 arr[p + 1] = temp;13 }14 }15 }16 }
3、快速排序 快速排序又叫二分法排序,通过递归的方式将数组分解,然后在通过concat将所有分解的数组进行拼接
1 function quicksort(tarr) { 2 if (tarr.length>1) { 3 var centerIndex = parseInt(tarr.length / 2); 4 var larr=tarr.splice(centerIndex,1); 5 var left=[],right=[]; 6 for(var i=0;i<tarr.length;i++){ 7 if(tarr[i]<larr[0]) { 8 left.push(tarr[i]); 9 }else{10 right.push(tarr[i]);11 }12 }13 return fnKspx(left).concat(larr,fnKspx(right));14 }else{15 return tarr;16 }17 }
javascript学习笔记数组排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。