开发者社区> 问答> 正文

有关插入排序的问题 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没有错误;为什么这样就出现错误呢?请大家帮我解答一下,非常感谢。

展开
收起
a123456678 2016-03-04 13:33:33 2148 0
1 条回答
写回答
取消 提交回答
  • 你写的太乱了
    给你一个插入排序的代码吧!

    #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;
    }
    2019-07-17 18:52:09
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载