加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

js迅速排序的实现代码

发布时间:2023-08-15 14:30:26 所属栏目:教程 来源:
导读:但是有不少的书本讲得并不是很清楚,而且不同的教材的实现方式也不尽相同,

我这里将最简单的快速排序的思路写出来供大家参考。

希望不管是使用什么语言都能从这个简单的代码里很方便的掌握快排思路与编写方
但是有不少的书本讲得并不是很清楚,而且不同的教材的实现方式也不尽相同,
 
我这里将最简单的快速排序的思路写出来供大家参考。
 
希望不管是使用什么语言都能从这个简单的代码里很方便的掌握快排思路与编写方式
 
代码如下:
 
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);
 
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章