資料結構排序問題

2021-10-25 04:56:23 字數 1430 閱讀 2529

資料結構排序總結

基本原理:冒泡法(小的上浮,大的下沉)

即相鄰元素比較,若前面的元素比後面的大,則交換位置。

氣泡排序的優化:可以設定乙個標誌位,如果某一次迴圈中發現位置都沒有變化,顯然陣列已排好序,直接退出。

#include //交換sp1和sp2的位置的函式

void swap(int *sp1, int *sp2)

//自定義的輸出函式

void print(int a, int n)

} print(a, n); }}

int main()

; //8個數則要冒泡7次

bubblesort(array, 8);

return 0;

}

工作原理:在無序數列中選擇最小元素並將其與第乙個資料交換位置,再從剩餘未排序的元素中選擇最小元素與第二個位置的資料交換,如此重複,直到全排完。時間複雜度為o(n*n)。

#include //選擇排序

void selectionsort(int* arr,int len)

為例,從大到小。

#include/*

*直接插入排序演算法

*a[0]作為每次帶插入元素k[i]的空間,也就相當於臨時變數tmp

*/void insertsort(int a, int n)}

int main()

; printf("排序前:\n");

for(i = 1; i <= 10; i++)

insertsort(a, 10);

printf("\n排序後:\n");

for(i = 1; i <= 10; i++)

return 0;

}

public static void shell(int array,int gap)else

}array[j+gap] = tmp;

}}public static void shellsort(int array);

for (int i = 0; i < drr.length; i++)

}

工作原理:每次迴圈結束後,一反面將標準元素(通常為a[low])放在了未來排好序的陣列中的正確位置,另一方面將陣列中的元素分為了兩個子陣列,位於標準元素左邊的關鍵字均小於它,位於關鍵元素右邊的關鍵字均大於等於它,然後對這兩個子陣列分別進行同樣的操作,直到low=high結束。

最壞情況:陣列已完全有序,此時二叉樹將退化為單分支二叉樹,深度為n。

#include using namespace std;

const int max=10002;

void quicksort(int a,int low,int high)

}

未完

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

這兩天一直總結排序問題,然後話不多啦,直接上 最主要的是要學會快速排序和氣泡排序,其它排序要熟練即可。include include define datatype int void insertsort datatype a,datatype len void biinsertsort datat...

資料結構 排序

小小總結了下 希望別不記得 排序型別 排序方法 平均時間 最壞時間 最好時間 穩定空間 插入直接插入 o n2 o n2 o n 穩定o 1 希爾排序 o n3 2 增量序列最後為1,只有公因子1 不穩o 1 選擇簡單選擇 o n2 o n2 o n 穩定o 1 堆排序o n lb n o n lb...

資料結構 排序

郝斌版 資料結構 學習筆記 冒泡 公升序,12比,大放後面,再23比,直至最大的在最後面 插入 2,3,4,依次插入值,保證插入值後的序列為有序的 選擇 後面所有的最小值依次排到最前 快速排序 歸併排序 22排,44排,88排.排序演算法標準 時間,空間,穩定性 排序和查詢的關係 排序是查詢的前提,...