理论知识:《算法导论》第二章
#include <iostream>
#include <vector>
using namespace std;
void display(vector<int> &Elem)
{
vector<int>::size_type length=Elem.size();
for(int i=0;i<length;i++)
{
cout<<Elem[i]<<'\t';
}
cout<<endl;
}
void insertionSort(vector<int> &Elem)
{
vector<int>::size_type length=Elem.size();
for(int j=1;j<length;j++)
{
int key=Elem[j];
int i=j-1;
while(i>=0&&Elem[i]>key)
{
Elem[i+1]=Elem[i];
i=i-1;
}
Elem[i+1]=key;
cout<<"第"<<j<<"次插入排序后的数组:";
display(Elem);
cout<<endl;
}
}
int main()
{
int elem;
vector<int> myElem;
while(cin>>elem)
{
myElem.push_back(elem);
}
insertionSort(myElem);
cout<<"最终排序好的数组:";
display(myElem);
cout<<endl;
}
运行结果如下: