JS中常见的一些排序算法
来源:互联网 发布:淘宝客自动发送微信群 编辑:程序博客网 时间:2024/06/05 15:21
一:冒泡排序
冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。就像“冒泡一样”.废话不多说,上代码:
function bubbleSort(arr) { var arr = this.arr; for(var i = 0; i < arr.length; i++) { for(var j = 0; j < arr.length - i; j++) { if(arr[j] < arr[j - 1]) { var temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } return arr; }
第二:快速排序(QuickSort)
这里推荐大家看阮一峰老师的博客
http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html
不爱点击的也可以参照,在这里做个总结:
- 第一步,在数据集中选择一个元素作为基准
- 第二步,所有小于基准的元素,都移动到这个“基准”的左边,所有大于这个“基准”的元素都移动到这个“基准”的右边
- 对“基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有的子集只剩下一个元素为止
代码:
function quickSort(arr){ //递归结束的判断条件 if(arr.length<=1){ return arr; } //选择基准 var pivotIndex=Math.floor(arr.length/2); var pivot=arr.splice(pivotIndex,1)[0]; var leftarr=[]; var rightarr=[]; //然后遍历数组 for(var i=0;i<arr.length;i++){ if(arr[i]<pivot){ leftarr.push(arr[i]) }else{ rightarr.push(arr[i]); } } //最后递归 return quickSort(leftarr).concat([pivot],quickSort(rightarr)); }
阅读全文
1 0
- JS中常见的一些排序算法
- js中常见的排序算法
- 一些常见的排序算法
- 常见的JS排序算法
- 一些常见排序算法
- C语言常见的一些排序算法
- 一些常见的排序算法(php语言)
- 一些常见排序算法的总结
- JS中常见的算法
- JS 常见排序算法
- js实现常见的排序算法
- Java 一些常见的 排序算法 面试也会问的算法
- js中一些常见的小坑
- .Net中实现常见的排序算法
- 笔试面试中常见的排序算法
- java中常见的排序算法
- 8中常见的排序算法
- Java中常见的排序算法
- 模板_zkw费用流
- Android 进程间交互 (IPC) 开发实践
- Shell中的for和while循环详细总结
- java构造sql查询语句时date和datetime的用法
- 【模板】 字符串哈希
- JS中常见的一些排序算法
- IE版本信息的获取:从mshtml.dll获取到的和IE的“关于“获取的版本不一致
- Centos中的数据库MariaDB常用命令
- 线程3:线程同步
- Tomcat发布为Windows服务
- EasyUI中datagrid获取选择行的相关总结
- document.body.appendChild(div);的用法
- Unity3d调用Android版so库
- bzoj4562: [Haoi2016]食物链