常見的排序演算法(大致思路)

2021-08-20 00:08:11 字數 802 閱讀 1144

1、氣泡排序:

從頭到尾比較相鄰兩個元素,如果前乙個元素比後乙個元素大,就交換他們的順序。迴圈執行,直到不需要再交換順序。

2、插入排序:

從第乙個元素開始,此時第乙個元素可以被認為是有序的序列。然後再每次選取後面的未排序的元素,將它與已經排好序的序列比較,從尾到頭比較,如果這個元素比有序序列當前位置的元素大,那麼就將這個元素放在它的後面,迴圈執行。

3、選擇排序:

每次選取未排序的元素中的最小的元素,將它作為已排好序的序列的最後乙個元素。

4、希爾排序:

設定乙個增量,然後按照這個增量對元素進行分組,設陣列長度為length,那麼增量就設定為length/2,length/4.....1。然後對每個分組進行插入排序,直到增量為1,那麼排序結束。例如:

5、快速排序:

快速排序使用分治思想,首先選取乙個基準值,和頭和尾兩個指標。指標向後遍歷直到找到第乙個比基準值打的元素,然後停下,尾指標向前遍歷,直到找到第乙個比基準值小的值,然後停下,交換他們的值,繼續執行,直到他們相遇,第一次排序完,基準值左邊的元素比基準值小,基準值右邊的值比基準值大,再對兩邊的元素遞迴執行排序,直到每乙個區間的元素個數都為1,那麼排序完畢。

6、堆排序:

利用大頂堆或者小頂堆,每次選取堆最上面的元素,選了以後再將剩下的元素重新變為大頂堆或者小頂堆,迴圈執行。

7、歸併排序:

首先選取相鄰兩個元素排序,組成有序序列,再選取相鄰兩個有序序列排序,組成更大的有序序列,迴圈執行。

常見排序演算法及其演算法思路解讀

幾種常見的排序演算法及其演算法思路 1.選擇排序 o n方 所謂選擇就是每次都選擇乙個最小的元素放在最前面。思路是去尋找最小元素的座標,然後將最小座標的元素與當前座標的元素交換。具體的做法是假設當前迴圈的第乙個座標是最小元素的座標,然後從第二個元素開始遍歷 內層迴圈 如果該元素比最小座標的的元素小,...

常見演算法思路總結

1.刪除單鏈表p指向的那個元素 有三個思路 1 前頭結點開始查詢,得到其前驅結點,然後刪除,此時時間複雜度為o n 2 利用雙向鍊錶,此時時間複雜度為o 1 3 當該結點不是鍊錶尾部元素時,將它後面的結點值儲存起來 賦給p 刪除其結點 當該結點是最後乙個元素時,從頭結點遍歷,此時時間複雜度為o n ...

排序演算法思路總結

好久不學演算法了,好多東西都忘了,所以回來整理一下原來學過的東西,這裡排序都預設以公升序為例 先說3個簡單的,時間複雜度為o n 2 1.氣泡排序 將相鄰兩個數進行比較,如果後者較小,則交換,這樣每次結束後,都能將第i大的數放到正確的位置 2.選擇排序 第一次在0 n 1的範圍內尋找最小值,將其放到...