常用排序演算法
目錄 常用排序演算法 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個數比較完後,最大的那個數就會被公升到了最後面來.接下來又照同...