各種排序演算法

2023-01-25 09:45:01 字數 1702 閱讀 8342

排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(氣泡排序、快速排序),選擇排序(直接選

擇排序、堆排序),歸併排序,分配排序(箱排序、基數排序)

最主要的是氣泡排序、選擇排序、插入排序以及快速排序

1、氣泡排序

氣泡排序是乙個比較簡單的排序方法。在待排序的數列基本有序的情況下排序速度較快。若要排序的數有n個,則需要n-1輪排序,第j輪排序中,從第乙個數開始,相鄰兩數比較,若不符合所要求的順序,則交換兩者的位置;直到第n+1-j個數為止,第乙個數與第二個數比較,第二個數與第三個數比較,......

,第n-j個與第n+1-j個比較,共比較n-1次。此時第n+1-j個位置上的數已經按要求排好,所以不參加以後的比較和交換操作。例如:

第一輪排序:第乙個數與第二個數進行比較,若不符合要求的順序,則交換兩者的位置,否則繼續進行二個數與第三個數比較......。直到完成第n-1個數與第n個數的比較。

此時第n個位置上的數已經按要求排好,它不參與以後的比較和交換操作;第二輪排序:第乙個數與第二個數進行比較,......直到完成第n-2個數與第n-1個數的比較;......

第n-1輪排序:第乙個數與第二個數進行比較,若符合所要求的順序,則結束冒泡法排序;若不符合要求的順序,則交換兩者的位置,然後結束冒泡法排序。

共n-1輪排序處理,第j輪進行n-j次比較和至多n-j次交換。

從以上排序過程可以看出,較大的數像氣泡一樣向上冒,而較小的數往下沉,故稱冒泡法。

public void bubblesort(int a)}}

}2、選擇排序

選擇法的原理是先將第乙個數與後面的每乙個數依次比較,不斷將將小的賦給第乙個數,從而找出最小的,然後第二個數與後面的每乙個數依次比較,從而找出第二小的,然後第三個數與後面的每乙個數依次比較,從而找出第三小的.....直到找到最後乙個數。

public void sort(int x)}}

}3、插入排序

插入排序的原理是對陣列中的第i個元素,認為它前面的i-1個已經排序好,然後將它插入到前面的i-1個元素中。插入排序對少量元素的排序較為有效.

public void sort(int obj)

obj[i+1]=key4、快速排序快速排序是對氣泡排序的一種改進。它的基本思想是:通過一次排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按次方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此大道整個資料變成有序序列。

public void quicksort(int obj,int low,int high)

temp=obj[j];

obj[j]=obj[i];

obj[i]=temp;

while(ii+1)

5. 歸併排序歸併排序具體工作原理如下(假設序列共有n個元素):   將序列每相鄰兩個數字進行歸併操作(merge),形成floor(n/2)個序列,排序後每個序列包含兩個元素將上述序列再次歸併,形成floor(n/4)個序列,每個序列包含四個元素重複步驟2,直到所有元素排序完畢完整的j**a源**

public static int mergesort(int data1,int data2int temp=new int[

int i=0,j=0,iter=0;

for(;i<<<=data2[jtemp[iter]=data1[i];

iterielsetemp[iter]=data2[j];

iterjfor(;i<< temp

各種排序演算法的穩定性

2009 10 21 12 02 首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai aj,ai原來在位置前,排序後ai還是要在aj位置前。為了簡便下面討論的都是不降序排列的情形,對於不公升...

Merge sort等各種資料結構排序演算法

資料局結構 排序演算法 一 複習要點 排序是使用最頻繁的一類演算法。排序分內排序與外排序。內排序演算法主要分5大類,有12個演算法。在插入排序類中討論了直接插入排序 二分法插入排序 表插入排序和shell排序演算法 在交換排序類中討論了起泡排序和快速排序演算法 在選擇排序類中討論了簡單選擇排序 錦標...

排序演算法總結

常見的排序方式有6種 簡單排序裡面的有 插入排序 選擇排序 氣泡排序,時間複雜度為o n 2 線性對數階的排序 歸併排序 merge sort 快速排序,堆排序,時間複雜度為o nlogn 在n 50的情況下,最好使用插入排序或者選擇排序,由於選擇排序移動次數比插入排序少,在資料量比較多的情況,推薦...