美文网首页
js实现快排

js实现快排

作者: Bookish倩宝 | 来源:发表于2016-09-29 23:44 被阅读0次

function quick_sort(list, start, end) {
if (start < end) {
var pivotpos = partition(list, start, end); //找出快排的基数
quick_sort(list, start, pivotpos - 1); //将左边的快排一次
quick_sort(list, pivotpos + 1, end); //将右边的快排一次
}
}

//将一个序列调整成以基数为分割的两个区域,一边全都不小于基数,一边全都不大于基数  
function partition(list, start, end) {  
  var pivotpos = start;  
  var pivot = list[start];  
  var tmp;  
  for(var i = start + 1; i <= end; i ++) {  
    if (list[i] < pivot) {  
      tmp = list[i];  
      pivotpos += 1;  
      list[i] = list[pivotpos];  
      list[pivotpos] = tmp;  
    }  
  }  

  tmp = list[start];  
  list[start] = list[pivotpos];  
  list[pivotpos] = tmp;  
  return pivotpos;  
}  

  
var list = [8,2,4,65,2,4,7,1,9,0,2,34,12];  

quick_sort(list, 0, list.length);

相关文章

  • JS实现插入排序、快排、二分查找法

    用JS实现插入排序 用JS实现快排 用JS实现二分查找法

  • js实现快排

    function quick_sort(list, start, end) {if (start < end) {...

  • 算法

    【原创】以下是自己写的某些算法的JS实现 快排 (一) 快排(二) 希尔排序 插排 二分插排 归并排序

  • JS快排

    "快速排序"的思想,整个排序过程只需要三步: (摘抄:http://www.ruanyifeng.com/blog...

  • js数组快排的实现原理

    一.我们平时在使用数组的排序的时候,都是调用的js自带的sort()方法;var arr = [5,1,8,1,2...

  • js 手写快排

  • 转载:快排实现

    快速排序(Quicksort) 基本思想:(分治) 先从数列中取出一个数作为key值; 将比这个数小的数全部放在它...

  • 快排递归实现

    基本思想:(分治) 先从数列中取出一个数作为key值;将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它...

  • 快排Java实现

    1、快排的核心思想: 1、从无序的数组中找到一个枢轴元素M,将数组一分为二:如将数组的第一个元素设置为枢轴元素。2...

  • js 快排与冒泡

    虽然说算法很复杂,但是在我的工作经验中,掌握这2个基本就够处理大部分前端业务工作(不要跟我抬杠哦,你要面试肯定不够...

网友评论

      本文标题:js实现快排

      本文链接:https://www.haomeiwen.com/subject/bselyttx.html