javascript数组排序汇总


Posted in Javascript onJuly 07, 2015

javascript数组排序汇总

//排序算法
  window.onload = function(){
    var array = [0,1,2,44,4,
          324,5,65,6,6,
          34,4,5,6,2,
          43,5,6,62,43,
          5,1,4,51,56,
          76,7,7,2,1,
          45,4,6,7,8];
    //var array = [4,2,5,1,0,3];
    console.log('原始数组');
    console.log(array);
    array = sorting.shellSort(array);
    // alert(array);
    console.log('排序后的数组')
    console.log(array);
  }
   
  var sorting = {
    //利用sort方法进行排序
    systemSort: function(arr){
      return arr.sort(function(a,b){
        return a-b;
      });
    },
   
    //冒泡排序
    bubbleSort: function(arr){
      var len=arr.length, tmp;
      for(var i=0;i<len-1;i++){
        for(var j=0;j<len-1-i;j++){
          if(arr[j]>arr[j+1]){
            tmp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = tmp;
          }
        }
      }
      return arr;
    },
   
    //快速排序
    quickSort: function(arr){
      var low=0, high=arr.length-1;
      sort(low,high);
      function sort(low, high){
        if(low<high){
          var mid = (function(low, high){
            var tmp = arr[low];
            while(low<high){
              while(low<high&&arr[high]>=tmp){
                high--;
              }
              arr[low] = arr[high];
              while(low<high&&arr[low]<=tmp){
                low++;
              }
              arr[high] = arr[low];
            }
            arr[low] = tmp;
            return low;
          })(low, high);
          sort(low, mid-1);
          sort(mid+1,high);
        }
      }
      return arr;
    },
   
    //插入排序
    insertSort: function(arr){
      var len = arr.length;
      for(var i=1;i<len;i++){
        var tmp = arr[i];
        for(var j=i-1;j>=0;j--){
          if(tmp<arr[j]){
            arr[j+1] = arr[j];
          }else{
            arr[j+1] = tmp;
            break;
          }
        }
      }
      return arr;
    },
   
    //希尔排序
    shellSort: function(arr){
      var h = 1;
      while(h<=arr.length/3){
        h = h*3+1; //O(n^(3/2))by Knuth,1973
      }
      for( ;h>=1;h=Math.floor(h/3)){
        for(var k=0;k<h;k++){
          for(var i=h+k;i<arr.length;i+=h){
            for(var j=i;j>=h&&arr[j]<arr[j-h];j-=h){
              var tmp = arr[j];
              arr[j] = arr[j-h];
              arr[j-h] = tmp;
            }
          }
        }
      }
      return arr;
    }
  }

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
jQuery点击输入框显示验证码图片
May 19 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
关于Promise 异步编程的实例讲解
Sep 01 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 Javascript
js实现弹幕飞机效果
Aug 27 Javascript
在vue中使用Echarts画曲线图的示例
Oct 03 Javascript
javascript编写贪吃蛇游戏
Jul 07 #Javascript
Javascript编写2048小游戏
Jul 07 #Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 #Javascript
JavaScript编写连连看小游戏
Jul 07 #Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 #Javascript
JavaScript编写推箱子游戏
Jul 07 #Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 #Javascript
You might like
什么是MVC,好东西啊
2007/05/03 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
JS二维数组的定义说明
2014/03/03 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python正则表达式之对号入座篇
2018/07/24 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
python中property和setter装饰器用法
2019/12/19 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
写给爸爸的道歉信
2014/01/15 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
致200米运动员广播稿
2014/02/06 职场文书
高中运动会入场词
2014/02/14 职场文书
会计的岗位职责
2014/03/15 职场文书
太太口服液广告词
2014/03/20 职场文书