经典排序之插入排序
經(jīng)典排序算法 – 插入排序Insertion sort
插入排序就是每一步都將一個(gè)待排數(shù)據(jù)按其大小插入到已經(jīng)排序的數(shù)據(jù)中的適當(dāng)位置,直到全部插入完畢。
插入排序方法分直接插入排序和折半插入排序兩種,這里只介紹直接插入排序,折半插入排序留到“查找”內(nèi)容中進(jìn)行。
圖1演示了對(duì)4個(gè)元素進(jìn)行直接插入排序的過程,共需要(a),(b),(c)三次插入。
設(shè)數(shù)組為a[0…n-1]。
1. 初始時(shí),a[0]自成1個(gè)有序區(qū),無序區(qū)為a[1..n-1]。令i=1
2. 將a[i]并入當(dāng)前的有序區(qū)a[0…i-1]中形成a[0…i]的有序區(qū)間。
3. i++并重復(fù)第二步直到i==n-1。排序完成。
代碼:
#include <iostream> using namespace std ; //C語言獲取數(shù)組長度 注意宏定義不能換行 #define getLength(array) sizeof(array)/sizeof(array[0])//C++獲取數(shù)據(jù)長度 template <class T> int getLen(T& array) {return sizeof(array)/sizeof(array[0]); }int* insertSort1
總結(jié)
- 上一篇: Android之Android stud
- 下一篇: 求字符串里面数字之和