javascript數(shù)組排序匯總
javascript數(shù)組排序匯總
//排序算法 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('原始數(shù)組'); console.log(array); array = sorting.shellSort(array); // alert(array); console.log('排序后的數(shù)組') console.log(array); } var sorting = { //利用sort方法進(jìn)行排序 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; } }
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- javascript中數(shù)組的冒泡排序使用示例
- js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序原理
- js交換排序 冒泡排序算法(Javascript版)
- js 排序動(dòng)畫模擬 冒泡排序
- JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼
- JS實(shí)現(xiàn)冒泡排序,插入排序和快速排序并排序輸出
- 分享javascript實(shí)現(xiàn)的冒泡排序代碼并優(yōu)化
- js基本算法:冒泡排序,二分查找的簡(jiǎn)單實(shí)例
- js sort 二維數(shù)組排序的用法小結(jié)
- JavaScript自定義數(shù)組排序方法
- JavaScript數(shù)組基于交換的排序示例【冒泡排序】
相關(guān)文章
JavaScript獲取鼠標(biāo)移動(dòng)時(shí)的坐標(biāo)(兼容IE8、chome谷歌、Firefox)
這篇文章主要介紹了JavaScript獲取鼠標(biāo)移動(dòng)時(shí)的坐標(biāo)(兼容IE8、chome谷歌、Firefox瀏覽器),需要的朋友可以參考下2014-09-09詳解JavaScript Alert函數(shù)執(zhí)行順序問題
本文主要介紹了Javascript的Alert函數(shù)執(zhí)行順序問題,對(duì)此感興趣的同學(xué),可以實(shí)驗(yàn)一下,以便解決平時(shí)遇到的一些奇怪的問題。2021-05-05javascript中創(chuàng)建對(duì)象的幾種方法總結(jié)
以下幾種,是javascript中最常用的創(chuàng)建對(duì)象的方式。初學(xué)者看到后,可能會(huì)暈掉,甚至?xí)X得擔(dān)心。其實(shí)完全不用擔(dān)心,這些種方式,只需要掌握一兩種,對(duì)其他的幾種只需要理解就好了2013-11-11JavaScript實(shí)現(xiàn)通過滑塊改變網(wǎng)頁顏色
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)通過滑塊改變網(wǎng)頁顏色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08用JavaScrpt實(shí)現(xiàn)文件夾簡(jiǎn)單輕松加密的實(shí)現(xiàn)方法圖文
電腦里經(jīng)常會(huì)存儲(chǔ)著重要文件,這些文件需要進(jìn)行加密,有許多方法來實(shí)現(xiàn)。但如果想對(duì)一個(gè)文件夾里的所有文件都進(jìn)行加密,數(shù)量少還可以,要是數(shù)量多豈不是得把人累死?2008-09-09JavaScript實(shí)現(xiàn)輪播圖方法(邏輯清晰一看就懂)
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)輪播圖方法的相關(guān)資料,JS輪播圖的實(shí)現(xiàn)核心是使用JavaScript來控制圖片的切換和顯示,配合HTML和CSS完成布局和樣式設(shè)置,文中介紹的方法邏輯清晰一看就懂,需要的朋友可以參考下2023-12-12