一、認識排序
排序的概念
? ? 排序: 所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。
? ? 穩定性: 假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,則稱這種排序算法是穩定的;否則稱為不穩定的。
? ? 內部排序: 數據元素全部放在內存中的排序。
? ? 外部排序: 數據元素太多不能同時放在內存中,根據排序過程的要求不能在內外存之間移動數據的排序。
常見的排序算法
1、插入排序
2、選擇排序
3、交換排序
4、歸并排序
排序實現的接口
// 插入排序
void InsertSort(int* a, int n);
// 希爾排序
void ShellSort(int* a, int n);
// 選擇排序
void SelectSort(int* a, int n);
// 堆排序
void AdjustDwon(int* a, int n, int root);
void HeapSort(int* a, int n);
// 冒泡排序
void BubbleSort(int* a, int n)