javascript数组排序汇总

 更新时间:2015年07月07日 11:40:29   投稿:hebedich  
本文给大家汇总了一下javascript的数组排序算法,包括冒泡排序、快速排序、插入排序、希尔排序,希望对大家熟悉javascript数组排序能够有所帮助。

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 修改String 对象 增加去除空格功能(示例代码)

    Javascript 修改String 对象 增加去除空格功能(示例代码)

    这篇文章主要介绍了Javascript 修改String 对象 增加去除空格功能(示例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • 详解JavaScript的定时器

    详解JavaScript的定时器

    这篇文章主要为大家介绍了JavaScript的定时器 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • javascript 验证码生成代码 推荐学习

    javascript 验证码生成代码 推荐学习

    非常不错的用javascript实现的验证码实现代码。
    2009-07-07
  • Bootstrap CDN和本地化环境搭建

    Bootstrap CDN和本地化环境搭建

    这篇文章主要介绍了Bootstrap CDN和本地化环境搭建的方法,非常不错具有参考借鉴价值,感兴趣的朋友跟着小编一起学习吧
    2016-10-10
  • 前端获取资源的方式(ajax、fetch)以及其区别详解

    前端获取资源的方式(ajax、fetch)以及其区别详解

    Fetch 被称之为下一代 Ajax 技术,内部采用 Promise 方式处理数据API 语法简洁明了,这篇文章主要给大家介绍了关于前端获取资源的方式(ajax、fetch)以及其区别的相关资料,需要的朋友可以参考下
    2024-07-07
  • Bootstrap实现的表格合并单元格示例

    Bootstrap实现的表格合并单元格示例

    这篇文章主要介绍了Bootstrap实现的表格合并单元格,涉及bootstrap界面布局相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • BootStrap中Table隐藏后显示问题的实现代码

    BootStrap中Table隐藏后显示问题的实现代码

    这篇文章主要介绍了BootStrap中Table隐藏后显示问题的实现代码,需要的朋友可以参考下
    2017-08-08
  • JavaScript变量和变换详情

    JavaScript变量和变换详情

    这篇文章主要介绍了JavaScript变量和变换详情,文章基于JavaScript的相关资料展开相关内容需要的小伙伴可以惨一下
    2022-04-04
  • JS中for...in 和 for...of 的区别解析

    JS中for...in 和 for...of 的区别解析

    for … in 用于迭代对象的可枚举字符串属性,包括自身属性和继承的属性,但不会遍历对象的原型链上的 非可枚举属性,以及对象的方法,这篇文章主要介绍了JS中for...in 和 for...of 的区别,需要的朋友可以参考下
    2024-03-03
  • 得到元素真实的背景颜色的js代码

    得到元素真实的背景颜色的js代码

    这个函数来自Rico,Longbill及Dnew.cn修改。 说明: 传入参数一个,为元素的id值或元素本身,返回为元素的真实背景色值(字符串)。背景值均为16进制的值(原代码是是IE里面返回的是16进制的值,而Mozilla则是rgb值,Dnew.cn将其修改为均返回16进制的值)。
    2007-12-12

最新评论