資料結構 排序(C )

2021-09-25 15:46:14 字數 1408 閱讀 8219

/**

直接插入排序

時間複雜度:o(n^2)

空間複雜度:o(1)

*/void insertsort(int r, int n)

for(j=i-1; j>high; --j) //將high後面的元素全部後移一位

r[j+1] = r[j];

r[high+1] = temp; //插入元素

} }

/**

希爾排序

時間複雜度:o(n^2)

空間複雜度:o(1)

*/void shellsort(int r, int n)

r[k+gap] = temp;}}

} }}

/**

氣泡排序

時間複雜度:o(n^2)

空間複雜度:o(1)

*/void bubblesort(int r, int n)

} if(flag == 0) //如果未發生交換代表序列有序

return;

}}

/**

快速排序

時間複雜度:o(n*log2^n)

空間複雜度:o(log2^n)

*/void quicksort(int r, int low, int high)

while(ii && r[j]>=temp) --j; //從左往右掃瞄找到小於temp的元素

if(i排序演算法

時間複雜度

空間複雜度

演算法穩定性

直接插入排序

o(n^2) 最壞、平均

o(n) 最好

o(1)

穩定折半插入排序

o(n^2) 最壞、平均

o(n*log2^n) 最好

o(1)

穩定希爾排序

o(n^2)

o(1)

不穩定氣泡排序

o(n^2) 最壞、平均

o(n) 最好

o(1)

穩定快速排序

o(n^2) 最壞

o(n*log2^n)最好、平均

o(log2^n)

不穩定簡單選擇排序

o(n^2)

o(1)

不穩定堆排序

o(n*log2^n)

o(1)

不穩定二路歸併排序

o(n*log2^n)

o(n)

穩定基數排序

o(d(n+r_d)) 最壞、平均

n:序列關鍵字數

d:關鍵字的關鍵位數

r_d:關鍵字基的個數

o(r_d)

穩定穩定性:快速排序、希爾排序、簡單選擇排序、堆排序 是不穩定的,其餘都是穩定的。

資料結構排序大全 C

排序大全 插入排序 氣泡排序 二叉樹排序 歸併排序及其他線形排序是穩定的 選擇排序 希爾排序 快速排序 堆排序是不穩定的 插入排序 氣泡排序 選擇排序的時間複雜性為 o n2 其它非線形排序的時間複雜性為 o nlog2n 線形排序的時間複雜性為 o n 歸併排序的輔助空間為 o n 其它排序的輔助...

C 資料結構 氣泡排序

include typedef int infotype typedef enum boolean define n 5 假設的檔案長度,即待排序的記錄數目 typedef int keytype 假設的關鍵字型別 typedef struct rectype typedef rectype seq...

資料結構 c 排序演算法

排序是將乙個記錄的任意序列,重新排列成乙個按關鍵字有序的序列 按非遞減或非遞增 排序演算法按排序過程中依據的不同原則可以大致分為五類 插入排序 交換排序 選擇排序 歸併排序 基數排序。下面程式均使無序序列排序成非遞減序列。資料結構使用順序表,並初始化8個元素 49,38,65,97,76,13,27...