資料結構排序總結
基本原理:冒泡法(小的上浮,大的下沉)
即相鄰元素比較,若前面的元素比後面的大,則交換位置。
氣泡排序的優化:可以設定乙個標誌位,如果某一次迴圈中發現位置都沒有變化,顯然陣列已排好序,直接退出。
#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排.排序演算法標準 時間,空間,穩定性 排序和查詢的關係 排序是查詢的前提,...