首页 > 代码库 > 记一下JavaScript的几种排序算法
记一下JavaScript的几种排序算法
零、写在最前
排序的方法有很多种,这篇文章只是记录我熟悉的算法;
我发现了一个关于排序算法很有趣的网站,把相关的算法演示做成了动画,有兴趣的同学可以看看!
附上SortAnimate网站链接:http://jun-lu.github.io/SortAnimate/index.html
一、冒泡排序
这是一种最基础的排序算法,也就是入门级别的算法!
原理:两两检测,比较两者之间的大小关系,大的往后丢!
1 function bubbleSort(arr){ 2 for(var i=0;i<arr.length;i++){ 3 for(var j=0;i<arr.length-i-1;i++){ 4 if(arr[j]>arr[j+1]){ 5 var temp=arr[j+1]; 6 arr[j+1]=arr[j]; 7 arr[j]=temp; 8 } 9 } 10 } 11 return arr; 12 }
二、快速排序
常用、排序速度快,但有点浪费内存空间!
原理:以中间基准点为中心进行比较,小的放左,大的放右,需要另外的2个数组存放;
1 function quickSort(arr){ 2 if (arr.length <= 1) { return arr; } 3 var index=Math.floor(arr.length/2); 4 var center=arr.splice(index,1)[0]; 5 var left=[],right=[]; 6 for(var i=0;i<arr.length;i++){ 7 arr[i]<center ? left.push(arr[i]) : right.push(arr[i]); 8 } 9 return quickSort(left).concat([center],quickSort(right)); 10 }
三、插入排序
原理:逐个检测,最大的往最后丢,每次减少检测次数!
1 function insertSort(arr){ 2 var arrLen=arr.length; 3 for(var i=0;i<arrLen;i++){ 4 var index=0; 5 for(var j=1;j<arrLen-i;j++){ 6 if(arr[j]>arr[index]) index=j; 7 } 8 var temp=arr[arrLen-i-1]; 9 arr[arrLen-i-1]=arr[index]; 10 arr[index]=temp; 11 } 12 return arr; 13 }
四、结尾
排序算法还有选择排序、希尔排序、二分排序等等.......
我以后再学习,再来补充这篇文章!
-------------------- End ---------------------
记一下JavaScript的几种排序算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。