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;
}