資料結構 排序問題 各種排序哦

2021-06-30 16:31:27 字數 1572 閱讀 7169

這兩天一直總結排序問題,然後話不多啦,直接上**

最主要的是要學會快速排序和氣泡排序,其它排序要熟練即可。

#include

#include

#define datatype int 

void insertsort(datatype a, datatype len);

void biinsertsort(datatype a, datatype len);

void bubblesort1(datatype a, datatype len);//氣泡排序(從右至左)

void bubblesort2(datatype a, datatype len);//氣泡排序(從左至右)

void fastsort(datatype a, int left, int right);//快速排序

void selectsort(datatype a, int len);//選擇排序

datatype main(void)

printf("排序後的結果是:\n");

//biinsertsort(a, i - 1);

selectsort(a, i - 1);

datatype k;

for (k = 1; k <= i - 1; k++)

printf("%d ", a[k]);

return 0;

}//折半查詢排序減少了比較次數為o(nlog2n),但是時間複雜度仍為o(n2),穩定排序(插入排序)

void biinsertsort(datatype a, datatype len)

for (j = i - 1; j >= high + 1; --j)

a[high + 1] = a[0];}}

//直接插入排序比較次數為o(n2),時間複雜度為o(n2),穩定排序(插入排序)

void insertsort(datatype a, datatype len)

}//從右至左的冒泡(外部迴圈從左至右,內部迴圈從右至左)複雜度(o(n2)),穩定( 交換排序)

void bubblesort1(datatype a, datatype len)

}if (flag == false)

break;}}

//從左至右的冒泡(外部迴圈從右至左,內部迴圈從左至右)( 交換排序)

void bubblesort2(datatype a, datatype len)

}if (flag == false)

break;}}

int partition(datatype a, int left, int right)

a[left] = pivot;

return left;

}//快速排序,平均時間複雜度o(nlog2n),最好為o(log2n),最壞為o(n2).是不穩定排序( 交換排序)

void fastsort(datatype a, int left, int right)

}//簡單選擇排序,不穩定,o(n2)(選擇排序)

void selectsort(datatype a, int len)

if (min != i)}}

資料結構 排序 各種排序演算法全分析

資料結構 排序 各種排序演算法全分析 排序簡介 排序是資料處理中經常使用的一種重要運算,在計算機及其應用系統中,花費在排序上的時間在系統執行時間中占有很大比重 並且排序本身對推動演算法分析的發展也起很大作用。目前已有上百種排序方法,但尚未有乙個最理想的盡如人意的方法,本章介紹常用的如下排序方法,並對...

資料結構排序問題

資料結構排序總結 基本原理 冒泡法 小的上浮,大的下沉 即相鄰元素比較,若前面的元素比後面的大,則交換位置。氣泡排序的優化 可以設定乙個標誌位,如果某一次迴圈中發現位置都沒有變化,顯然陣列已排好序,直接退出。include 交換sp1和sp2的位置的函式 void swap int sp1,int ...

資料結構 各種排序演算法比較

一,各種排序演算法比較 各種排序演算法比較 二,相關概念 1 穩定排序和非穩定排序 簡單地說就是所有相等的數經過某種排序方法後,仍能保持它們在排序之前的相對次序,我們就說這種排序方法是穩定的。反之,就是非穩定的。比如 一組數排序前是a1,a2,a3,a4,a5,其中a2 a4,經過某種排序後為a1,...