一提排序演算法,大家腦海中就會想起插入,冒泡,選擇……很多種排序演算法。東西一多,大家就容易頭疼。所以,在總結各個演算法之前,我們先來減負。思想:將乙個待排序的序列插入到乙個最開始只有乙個元素的有序序列中。隨著插入操作進行,有序序列的長度逐漸增長。>注意:插入的時候要確定插入的位置,如何確定呢?與有序表中已有的元素進行比較,比較的時候是從後向前(從右向左)比。
思想:每次按乙個增量進行分組,將一組內的資料進行直接插入排序。直到增量=1.把增量理解為下標的間距。如下圖,當增量為5時,把下標為0的數和下標為5的數放到一組,因為5-0=5,正好等於增量值。增量為幾,就會分成幾組。(按增量分組+直接插入排序)思想:兩個數進行比較,逆序則交換。思想:每一趟取第乙個資料為標準,將資料分為小於它的和大於它的。按這種規則在對分成的每部分進行排序。思想:每一趟找到最小的放到前面的乙個位置。如第一趟找到最小的放在第乙個位置,第二趟從剩下的當中找到最小的放在第二個位置……思想:不論是建堆還是調整堆都用到了反覆「篩選」的過程。每次都會以乙個結點作為標誌,從該結點的孩子結點中尋找是否有小於該標誌的。發生交換後,再從變動的結點的孩子結點中尋找是否有比該標誌小的。思想:將兩個有序序列合併成乙個有序序列。而對於每乙個有序子串行,則需要再分成兩個有序序列進行合併,直到分解成每個單獨有序的關鍵字,再按它們分解之前的方式合併。思想:如果關鍵字是十進位制的,則基數為10,那麼先看每個數的個位,將關鍵字分配到0,1,2,3,4,5,6,7,8,9中,再看十位,按相同方式分配,知道遍歷完所有數字。排序演算法總結
1 直接插入排序 1 穩定性 穩定 2 適用情況 待排記錄規模較小,或者記錄已經基本有序 2 希爾排序 1 穩定性 不穩定 2 特點 希爾排序的執行時間依賴於增量序列,它的效率比直接插入排序有較大的改進。3 氣泡排序 1 穩定性 穩定 2 特點 當待排記錄基本有序是,氣泡排序是不錯的選擇 但由於氣泡...
排序演算法總結
1 選擇排序 選擇排序的思想是依次從待排序數列中選擇最大 小 的 第二大 小 的等等,然後依次重新排列為有序數列。void selectionsort int a,int n if min i 時間複雜度o n 2 2 歸併排序 void merge int a,int left,int mid,i...
排序演算法總結
學習了這麼多的排序演算法,還沒有做個總結,呵呵 氣泡排序 氣泡排序是最慢的排序演算法。在實際運用中它是效率最低的演算法。它通過一趟又一趟地比較陣列中的每乙個元素,使較大的資料下沉,較小的資料上公升。它是 o n 2 的演算法。快速排序 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來...