#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;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。