直接插入排序
直接插入排序相对比较复杂,它的基本工作原理可以做一个比喻,抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张。
直接插入排序就是依次取带排列数组的元素,将其插入到前面有序的数组中。
#include <iostream>
using namespace std;
void InsertSort (int *pData, int Count)
{
int iTemp;
int iPos;
for (int i=1; i<Count; i++) {
iTemp = pData[i];
iPos = i-1;
while ((iPos>=0)&&(iTemp<pData[iPos])) {
//前移一位
pData[iPos+1]=pData[iPos];
iPos--;
}
//插入数据
pData[iPos+1]=iTemp;
}
}
int main()
{
int data[] = {10,9,8,7,6,5,4};
InsertSort(data, 7);
for (int i=0; i<7; i++) {
cout <<data[i]<<" ";
}
}