on排序演算法

排序演算法: 氣泡排序, 快速排序,希爾排序,直接插入排序 ,直接選擇排序,歸併排序,堆排序

幾種排序演算法分析:     氣泡排序:   氣泡排序的方法排序速度比較慢。   思路:進行n-1排序,第一次排序先找出最小的數字,放在第一個位置,然後在剩餘的數字中再找出最小的數字,放在第二個位置上,依次類推,可以排出所有的數字。   當然也可以從大到小的排序。   例如 a[]={5 ,4 ,3 […]

排序演算法:氣泡排序(帶標記)

查詢排序演算法時,找到一個種帶標記的氣泡排序演算法,它的優勢是對於後部已經排好序的的數列,節省了繼續向後比較的操作。 帶標記的氣泡排序演算法:在一次排序中,標記出最後一次進行交換元素的位置,在下次排序中,只需要比較到這個標記位置,因為後面的元素已經排好序。 C 實現 #include <ios […]

排序演算法(6)歸併排序

一.基本思想      歸併排序是分治思想的典型應用      歸併操作是指將兩個已排序列合併成一個序列的過程     (1)申請空間,建立一個大小等於待排陣列的新陣列     (2)設定兩個指標,初始位置分別是兩個已排序列的起始位置     (3)比較兩個指標指向的元素,選擇相對小的元素放到合併空 […]

排序演算法系列:Shell 排序演算法

概述 希爾排序(Shell Sort)是 D.L.Shell 於 1959 年提出來的一種排序演算法,在這之前排序演算法的時間複雜度基本都是 O(n2n^{2}) 的,希爾排序演算法是突破這個時間複雜度的第一批演算法之一。希爾排序是一種插入排序演算法。 版權說明 著作權歸作者所有。 商業轉載請聯絡作 […]

排序演算法的穩定性及其意義

穩定性的定義       假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。 判斷方法 對於不穩定的排序演算法,只要舉出一個 […]

排序演算法之快速排序詳解(附示例程式碼)

1.快速排序簡介 對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為O(n的平方)的排序演算法.雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇.因為他的平均效能非常好,它的期望時間複雜度是O(n lg n),而且其中包含的常數因子非常小. 2.快速排序的原理 快 […]