有关插入排序的问题 c++实现

#include
#include
using namespace std;

vector Insertion_sort(vector& A)
{
for(vector::size_type i=1;i {
int key=A[i];
vector::size_type j=i-1;
while(j>=0&&A[j]<key)
{
A[j+1]=A[j];
j=j-1;
}
A[j+1]=key;
}
return A;
}

int main()
{
vector A;
int x;
cout<<"Please enter some numbers:";
while(cin>>x)
A.push_back(x);
A=Insertion_sort(A);
for(vector::size_type i=0;i<A.size();++i)
cout<<A[i]<<" ";
cout<<endl;
}

请问为什么上述插入排序算法会有错误呢?如果按照升序输出结果的话,也就是将A[j]key没有错误;为什么这样就出现错误呢?请大家帮我解答一下,非常感谢。

你这个排版太乱了,能不能排版搞好点,否则看得头晕,有心也帮不上

给你一个插入排序的代码吧!#include
using namespace std;
void sort2(int inarray[],int insize)
{
for(int i=1;i {
int element=inarray[i];
int j=i-1;
while(j>=0&&inarray[j]>element)
{
inarray[j+1]=inarray[j];
j--;
}
inarray[j+1]=element;
}
}
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
sort2(a,10);
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
用笔在纸上划一下程序的执行情况就会明白!
如果看不懂的话链接一下下面的网址吧!
http://blog.csdn.net/liuzuyi200/article/details/8978198