javascript數組排序匯總,javascript數組匯總

來源:互聯網
上載者:User

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;    }  }

以上所述就是本文的全部內容了,希望大家能夠喜歡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.