首页 > 编程语言 > 详细

分析并封装排序算法(js,java)

时间:2020-06-26 13:35:20      阅读:65      评论:0      收藏:0      [点我收藏+]

前言

  本次来分享一下排序的api底层的逻辑,这次用js模拟,java的逻辑也是差不多。

  先看封装好的api例子:

  js的sort排序

技术分享图片

 

 

  java的compareTo排序

技术分享图片

 技术分享图片

 

 

自己模拟的代码(JS)

function compareTo(a,b){
  return a-b;//a-b为从下到大 b-a为从大到小
}

Object.prototype.newSort = function(Func){
  const flag = Func(1,0);
  const $this = this;
  $this.forEach((elem,i) => {
    for(let j = $this.length-1; j > i; j--){
      // 思路就是从数组第一个开始与倒数第一个直到第二个一直比较,如果有比第一个小的,就交换,然后第二次循环就只需要第二个与倒数第二个开始比较,这种方式到最后就是中间两个数比较,循环的次数会比较少效率也高一些
      const compare = flag > 0 ? elem > $this[j] : elem < $this[j];
      if(compare){
        $this[i] = $this[j];
        $this[j] = elem;
        elem = $this[i];
      }
    }
  });
  console.log($this);
}

var array = [2,1,5,7,3,4,9,8,6,4,5];
console.log(array.newSort(compareTo));//[ 1, 2, 3, 4, 4, 5, 5, 6, 7, 8, 9 ]

 

源代码

  js源代码

  技术分享图片

 

 

  java源代码

技术分享图片

 

分析并封装排序算法(js,java)

原文:https://www.cnblogs.com/zxd66666/p/13194458.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!