C++实现插入排序

来源:互联网 发布:java写一个二分查找 编辑:程序博客网 时间:2024/06/04 18:15

C++实现插入排序

算法思想:

  • 从第一个元素开始,该元素可以认为已经被排序
  • 取出下一个元素,在已经排序的元素序列中从后向前扫描
  • 如果该元素(已排序)大于新元素,将该元素移到下一位置
  • 重复上一步骤,直到找到已排序的元素小于或者等于新元素的位置
  • 将新元素插入到下一位置中
  • 重复步骤2~5

源代码:

以下代码在VS2013下编译运行通过


#include < iostream>
#include < vector>

using namespace std;

int main()
{
vector 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;

}

0 0
原创粉丝点击