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 相关文章推荐
Jquery实战_读书笔记2 选择器
Jan 22 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
Feb 04 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
Nov 30 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
JS仿百度自动下拉框模糊匹配提示
Jul 25 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
jQuery选择器之子元素选择器详解
Sep 18 jQuery
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
Vue获取微博授权URL代码实例
Nov 04 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生成月历代码
2007/06/14 PHP
解析php中memcache的应用
2013/06/18 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Python with语句用法原理详解
2020/07/03 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
会计出纳岗位职责
2013/12/25 职场文书
医药销售自我评价200字
2014/09/11 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
投标售后服务承诺书
2015/04/29 职场文书
学校少先队工作总结
2015/08/12 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang