資料結構 內部排序

2021-06-17 01:04:43 字數 1454 閱讀 3096

內部排序演算法

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

空間複雜度: o(1)    o(1)      o(1)

演算法名稱:   插入     選擇     冒泡

演算法名稱:   希爾    堆        快速         歸併     基數

空間複雜度:o(1)     o(1)       o(logn)     o(n)    o(2rd)

時間複雜度:o(nlogn) o(nlogn)  o(nlogn)    o(nlogn) o(d(n+rd))

穩定的:插入 冒泡 歸併 基數

其它:不穩定排序。

示列**:

#include#includeusing namespace std;

#define maxsize 500

typedef int keytype;定義關鍵字型別

typedef char infotype;

struct rectype

r[maxsize],r1[maxsize];

//插入排序

void strinssort(rectype r,int n)//直接插入排序

}void shellsort(rectype r,int n)//希爾排序

} }}void bubblesort1(rectype r,int n)//改進的起泡排序

} i = lastexchange; }}

//快速排序也叫分割槽交換排序

int partition(rectype r,int low,int high)

else

}} else

} }}

void qsort(rectype r,int low,int high)

for(int j=n;j>1;j--) }

//歸併排序

void merge(rectype r,rectype r1,int i,int l,int h)

if(i<=l)//將剩餘的r[i..l]複製到r1 }

if(j<=h)//將剩餘的r[j..h]複製到r1 }

}void msort(rectype r,rectype r1,int s,int t)

}void mergesort(rectype r,int n)//2-路歸併排序

void select()

cout<<"序列初始化完成"<

資料結構6 2內部排序

假設含n個記錄的序列為 其對應的關鍵字序列為 這些關鍵字的排列方式有多種,其中至少有一種排列方式能使得關鍵字之間存在著這樣乙個關係 kp1 kp2 kpn 按此關係將記錄序列重新排列為 即為有序記錄,將這一過程稱為排序。若在乙個記錄序列中ki kj,且在排序前的序列中ri領先於rj。若在排序後的序列...

資料結構 內部排序法

總結一些演算法的實現 交換排序 1.冒泡演算法 typedef struct arr1 arr1 void bubblesort arr1 goal,int n if flag m沒有交換時證明排玩了,跳出迴圈結束排序。return 2.快速排序 時間複雜度為o nlog2n 空間複雜度為o log...

資料結構 內部排序之氣泡排序

1.基本思想 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來 2.具體做法 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越...