排序有內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。
先上圖:
我先從上往下挨個介紹:
1->插入排序:
插入排序時間複雜度最優為 o(n) 情況是陣列為已經排好的順序;最差為o(n^2) 情況為陣列為排好的逆序;平均時間複雜度為o(n^2)。空間複雜度為o(1)。
插入排序的基本思想是:每步將乙個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。
插入排序
是穩定的排序演算法。
**:
#include
#include
using namespace std;
template//模板
void insertsort(vector&arr)
arr[j]=temp;}}
int main()
;vectorarr(a,a+10);
insertsort(arr);
for(int i=0;i<10;i++)
return 0;
}
八大排序演算法之插入排序
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量資料的處理方面。乙個優秀的演算法可以節省大量的資源。在各個領域中考慮到資料的各種限制和規範,要得到乙個符合實際的優秀...
八大排序之插入排序
插入排序基本思想是每一步將乙個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。1.時間複雜度 插入演算法,就是保證前面的序列是有序的,只需要把當前數插入前面的某乙個位置即可。所以如果陣列本來就是有序的,則陣列的最好情況下時間複雜度為o n 如果陣列恰好是倒 倒序,比如原始陣列...
八大排序演算法之(三)插入排序 折半插入排序
折半插入排序演算法原理 把乙個新的元素插入已經拍好順序的陣列的過程中,尋找插入位置時,將待插入區域的首元素設定為a left 末元素設定為a right 比較時,將待插入元素與a mid 其中mid left right 2相比較,如果比參考元素小,則選擇a left 到a mid 1 為新的插入區...