總結了一些常見的排序演算法,面試必備啊!

來源:互聯網
上載者:User
  原文:  http://free56.cn/post/22.html

名稱

複雜度

說明

備忘

冒泡排序
Bubble Sort

O(N*N)

將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮

 

插入排序

Insertion sort

O(N*N)

逐一取出元素,在已經排序的元素序列中從後向前掃描,放到適當的位置

起初,已經排序的元素序列為空白

選擇排序

O(N*N)

首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此遞迴。

 

快速排序

Quick Sort

O(n *log2(n))

先選擇中間值,然後把比它小的放在左邊,大的放在右邊(具體的實現是從兩邊找,找到一對後交換)。然後對兩邊分別使用這個過程(遞迴)。

 

堆排序Heap Sort

O(n *log2(n))

利用堆(heaps)這種資料結構來構造的一種排序演算法。堆是一個近似完全二叉樹結構,並同時滿足堆屬性:即子節點的索引值或索引總是小於(或者大於)它的父節點。

近似完全二叉樹

希爾排序

SHELL

O(n1+£)

0<£<1

選擇一個步長(Step) ,然後按間隔為步長的單元進行排序.遞迴,步長逐漸層小,直至為1.

 

箱排序
Bin Sort

O(n)

設定若干個箱子,把關鍵字等於 k 的記錄全都裝入到第 k 個箱子裡 ( 分配 ) ,然後按序號依次將各非空的箱子首尾串連起來 ( 收集 ) 。

分配排序的一種:通過 " 分配 " 和 " 收集 " 過程來實現排序。

桶排序

Bucket Sort

O(n)

桶排序的思想是把 [0 , 1) 劃分為 n 個大小相同的子區間,每一子區間是一個桶。

   原文:  http://free56.cn/post/22.html

聯繫我們

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