C++实现插入排序
算法思想:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一位置
- 重复上一步骤,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到下一位置中
- 重复步骤2~5
源代码:
#include < iostream>
#include < vector>
using namespace std;
int main()
{
vector<int> iVec;
cout << "Please input some interger nubmers: " << endl;
int iVal;
while (cin >> iVal )
{
iVec.push_back(iVal);
}
for (unsigned i = 1; i <= iVec.size() - 1; ++i)
{
int insert = iVec[i];
int j = i - 1;
while (j >=0 && iVec[j] < insert)
{
iVec[j + 1] = iVec[j];
--j;
}
iVec[j + 1] = insert;
}
cout << "Sort is completed:" << endl;
for (unsigned i = 0; i <= iVec.size() - 1; ++i)
{
cout << iVec[i] << " ";
}
cout << endl;
system("PAUSE");
return 1;
}