PHP之八大排序演算法--插入排序(-)直接插入排序

來源:互聯網
上載者:User

標籤:

直接插入排序:

插入排序是最簡單的排序演算法之一,對於有N個元素的序列,插入排序由N-1趟排序組成。它的工作原理是通過構建有序序列,對於未排序的資料,在已經排序序列中從後向前掃描,找到相應位置插入。

插入排序演算法步驟:

  1. 將第一個待排序的序列的第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序列。

  2. 從頭到尾一次掃描未排序的序列,將掃描到的每個元素插入有序序列的適當位置(在這裡需要注意一個問題,如果在有序序列中有一個和待插入的元素相等,則將待插入的元素查到此元素的後面,這樣方式的插入排序是穩定的。如果插入到此元素的前面,那麼此種方式的插入排序是不穩定的

    對於上面的步驟可以將插入排序的演算法總結為:

    在第L趟排序中,將位置L上的元素向左移動到它在前L+1個元素中的正確的位置上,這裡的前L個元素是有序的。


插入排序演算法分析:

由於嵌套迴圈的每一個都花費N次迭代,因此插入排序的時間複雜度為O(N^2);

以上講解的插入排序是插入排序演算法中的直接插入排序,在有序序列中尋找插入位置的時候是逐個尋找,故稱直接插入排序

歡迎繼續關注我們後續的排序演算法.個人項目有:配資公司(www.ya-jing.cn)

PHP之八大排序演算法--插入排序(-)直接插入排序

相關文章

聯繫我們

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