常用排序演算法實現

2021-08-20 00:18:27 字數 2414 閱讀 4682

常用排序演算法

目錄 常用排序演算法 1

1. 插入排序 1

2. 希爾排序 2

3. 氣泡排序 3

4. 快速排序 4

5. 選擇排序 5

6. 歸併排序 6

1. 插入排序

public

class

insertsort

a[j+1] = temp;//插入}}

public

static

void

main(string args) ;

is.insertsort(a);

for(int e : a)

}}

2. 希爾排序

public class shellsort 

a[k+len] = temp;//插入}}

}}

public static void main(string args) ;

ss.shellsort(a);

for(int e : a)

}}

3. 氣泡排序

public

class

bubblesort }}

}public

static

void

main(string args) ;

bs.bubblesort(a);

for(int e : a)

}}

4. 快速排序

public

class

quicksort

a[left] = a[right];//將這個較小的元素與left元素交換位置

while(left//從左往右找到第乙個比基準值大的元素

left++;

}a[right] = a[left];//將這個較大的元素與right元素交換位置

}a[right] = temp;//將基準值插入left與right相交的位置

quicksort(a, _left, left-1);//對基準值左邊的元素繼續進行快速排序

quicksort(a, right+1, _right);//對基準值右邊的元素繼續進行快速排序}}

public

static

void

main(string args) ;

qs.quicksort(a,0,a.length-1);

// for(int i = 0 ; i< a.length; i++)

for(int e : a)

}}

5. 選擇排序

public

class selectsort

}public

static

void

main(string args) ;

ss.selectsort(a);

for(int e : a)

}}

6. 歸併排序

public

class

mergersort

}/**

*@title: mergerarray

*@description: 將有二個有序數列a[first...mid]和a[mid...last]合併。

*@param a

*@param temp

*@param first

*@param mid

*@param last void

*@author young

*@date 2023年5月15日下午4:13:02

*/public

void

mergerarray(int a,int temp,int first,int mid,int last)

while(f <= m)

temp[k++] = a[f++];

while(m1 <= l)

temp[k++] = a[m1++];

for(int i = 0;ipublic

static

void

main(string args) ;

int temp = new

int[a.length];//初始化乙個臨時陣列

ss.mergersort(a, temp, 0, a.length-1);

for(int e : a)

}}

常用排序演算法實現

按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...

常用排序演算法實現

include main.h include include using namespace std void merge int a,int l,int m,int r void printnum int arr,int len,string flag void swap int a,int b ...

常用排序演算法 C實現

1.1 氣泡排序 演算法描述 所給的n個數中,先拿第乙個數來和第二個比較,然後讓較大的乙個排在後面 即如果n1 n2,則讓n1與n2交換位置 然後又拿第二個數來和第三個數比較,又把較大的乙個排在後面,如此往下做下去,直到第n 1個數和第n個數比較完後,最大的那個數就會被公升到了最後面來.接下來又照同...