JS排序方法(sort,bubble,select,insert)代码汇总


Posted in Javascript onJanuary 30, 2016

最近开始学习数据结构。

一点一点整理,希望能坚持下来。

因为方向是前端,所以用JavaScript实现。

//sort排序
var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr3=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
testArr1.sort();//排序结果:[15, 19, 2, 26, 27, 3, 36, 38, 4, 44, 46, 47, 48, 5, 50]
testArr2.sort(function(a,b){return a>b});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
testArr3.sort(function(a,b){return a-b});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]

//Bubble排序

var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function bubbleSort1(array){
  for(i=array.length-1;i>0;i--){
    for(j=0;j<i;j++){
      if(array[j+1]<array[j]){
        var temp=array[j+1];
        array[j+1]=array[j];
        array[j]=temp;
      }
    }
  }
}
function bubbleSort2(array){
  for(i=array.length-1;i>0;i--){
    for(j=0;j<i;j++){
      if((array[j+1]-array[j])<0){
        var temp=array[j+1];
        array[j+1]=array[j];
        array[j]=temp;
      }
    }
  }
}
bubbleSort1(testArr1);//排序结果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
bubbleSort2(testArr2);//排序结果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

//Select排序

var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function selectSort(array){
  for(i=0;i<array.length;i++){
     var slc=array[i];//初始时设未排序的第一个值为选中值
     var slcIdx;//记录一次循环后作为选中值的index
     for(j=i;j<array.length;j++){  
      if(array[j]<slc){
       slc=array[j];
       slcIdx=j; 
      }
     }
   if(slc!=test[i]){//如果最后作为选中值的值和初始slc值不相等
    var temp=array[i];
    array[i]=array[slcIdx];
    array[slcIdx]=temp;
   }
  }
}
selectSort(testArr);//排序结果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

//Insert排序

var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function insertSort(array){
  for (var i = 0 ; i < array.length-1; i++) {//注意i小于数组的长度-1,否则会造成数组越界,形成死循环
    var curElement=array[i+1];
    for (var j = i; j >= 0; j--) {
      if(curElement<array[j]){
        array[j+1]=array[j];
        if(j==0){//当j==0时,说明已经排到了数组的最开头
          array[0]=curElement;
        }
      }else{
        array[j+1]=curElement;
         break;
      }
    };
  };
}
 insertSort(testArr);//排序结果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
Javascript 相关文章推荐
JS 的应用开发初探(mootools)
Dec 19 Javascript
js获取ajax返回值代码
Apr 30 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
jquery插件锦集【推荐】
Dec 16 Javascript
JS实现多物体运动的方法详解
Jan 23 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
JS如何在数组指定位置插入元素
Mar 10 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
Oct 16 Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 Javascript
JavaScript中的this机制
Jan 30 #Javascript
实现高性能JavaScript之执行与加载
Jan 30 #Javascript
深入探秘jquery瀑布流的实现
Jan 30 #Javascript
深入分析Javascript事件代理
Jan 30 #Javascript
详解javascript实现瀑布流列式布局
Jan 29 #Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 #Javascript
理解Javascript文件动态加载
Jan 29 #Javascript
You might like
php部分常见问题总结
2008/03/27 PHP
PHP 数字左侧自动补0
2008/03/31 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php生成随机颜色的方法
2014/11/13 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
javascript倒计时功能实现代码
2012/06/07 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
js布局实现单选按钮控件
2020/01/17 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
python实现图片批量压缩程序
2018/07/23 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
python实现图像拼接功能
2020/03/23 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
消防安全宣传口号
2014/06/10 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
优秀员工演讲稿
2019/06/21 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Java如何实现树的同构?
2021/06/22 Java/Android
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
Python turtle编写简单的球类小游戏
2022/03/31 Python
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技