各種排序演算法

2021-08-10 16:49:11 字數 792 閱讀 3566

//該排序都是對順序表裡的元素進行排序

typedef struct

sqlist;

void swap(sqlist *l,int i,int j)//交換資料函式

void print(sqlist *l)//列印資料函式

1.氣泡排序

void bubblesort(sqlist *l)//氣泡排序 }

} 2.氣泡排序改進版

void bubblesort2(sqlist *l)//氣泡排序改進版1:增加標誌位 }

} }

3.氣泡排序改進版2

void bubblesort3(sqlist *l)//氣泡排序改進版2:雙向移動資料(雞尾酒排序)

for(j=l->length-1-(i+1);j>i;j–) }

} 4.直接選擇排序

void selectsort(sqlist *l)//直接選擇排序

if(i!=min)

swap(l,i,min);

} }

5.直接插入排序

void insertsort(sqlist *l)//直接插入排序 }

}6.快速排序

void qsort1(sqlist *l,int left,int right)//快速排序

{ int i=left,j=right;

if(left>=right)//遞迴出口

return;

int key = l->r[left];

while(i

排序 各種排序演算法

每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子表中適當位置,直到全部記錄插入完成為止 待排序的記錄放在陣列r 0,n 1 中 排序過程中將r分成兩個子區間,有序區r 0,i 1 無序區r i,n 1 將當前無序區的第1個記錄,插入到有序區中適當的位置上 每次是有序區增加乙個記錄,知道...

各種排序演算法

交換函式 void swap int a,int b 氣泡排序 氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排...

各種排序演算法

include include include using namespace std void swap int a,int b void output int a,int n 直接插入排序 時間複雜度o n 2 void insertsort int a,int n 折半插入排序 o n 2 只...