記一下JavaScript的幾種排序演算法

來源:互聯網
上載者:User

標籤:script   ice   記錄   pre   color   有趣   方法   希爾排序   nim   

零、寫在最前

  排序的方法有很多種,這篇文章只是記錄我熟悉的演算法;

  我發現了一個關於排序演算法很有趣的網站,把相關的演算法示範做成了動畫,有興趣的同學可以看看!

  附上SortAnimate網站連結:http://jun-lu.github.io/SortAnimate/index.html

一、冒泡排序

  這是一種最基礎的排序演算法,也就是入門層級的演算法!

  原理:兩兩檢測,比較兩者之間的大小關係,大的往後丟!

 1 function bubbleSort(arr){ 2     for(var i=0;i<arr.length;i++){ 3         for(var j=0;i<arr.length-i-1;i++){ 4             if(arr[j]>arr[j+1]){ 5                 var temp=arr[j+1]; 6                 arr[j+1]=arr[j]; 7                 arr[j]=temp; 8             } 9         }10     }11     return arr;12 }
二、快速排序

  常用、排序速度快,但有點浪費記憶體空間!

  原理:以中間基準點為中心進行比較,小的放左,大的放右,需要另外的2個數組存放;

 1 function quickSort(arr){ 2     if (arr.length <= 1) { return arr; } 3     var index=Math.floor(arr.length/2); 4     var center=arr.splice(index,1)[0]; 5     var left=[],right=[]; 6     for(var i=0;i<arr.length;i++){ 7         arr[i]<center ? left.push(arr[i]) : right.push(arr[i]); 8     } 9     return quickSort(left).concat([center],quickSort(right));10 }
三、插入排序

  原理:逐個檢測,最大的往最後丟,每次減少檢測次數!

 1 function insertSort(arr){ 2     var arrLen=arr.length; 3     for(var i=0;i<arrLen;i++){ 4         var index=0; 5         for(var j=1;j<arrLen-i;j++){ 6             if(arr[j]>arr[index]) index=j; 7         } 8         var temp=arr[arrLen-i-1]; 9         arr[arrLen-i-1]=arr[index];10         arr[index]=temp;11     }12     return arr;13 }
四、結尾

  排序演算法還有選擇排序、希爾排序、二分排序等等.......

  我以後再學習,再來補充這篇文章!

-------------------- End ---------------------

記一下JavaScript的幾種排序演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.