a_zhai 2015-04-30 08:43 采纳率: 66.7%
浏览 1922

求助,c++ vector使用出现问题

#include
#include

using namespace std;

void merge( vector& a, int first, int mid, int last )
{
vector s1 = { a.begin() + first, a.begin() + mid };
vector s2 = { a.begin() + mid + 1, a.begin() + last };
int i = 0; int j = 0; int k = 0;
int len1 = mid - first + 1;
int len2 = last - mid;
for (; ( i < len1 ) && ( j <= len2 ); ++k)
{
if (s1[ i ] < s2[ j ])
a[ k ] = s1[ i++ ];
else
a[ k ] = s2[ j++ ];

}
while (i++ < len1)
    a[ k++ ] = s1[ i ];
while (j++ < len2)
    a[ k++ ] = s2[ j ];

}

void mergesort( vector& a, int first, int last )
{
if (first < last)
{
int mid = ( first + last ) / 2;
mergesort( a, first, mid );
mergesort( a, mid + 1, last );
merge( a, first, mid, last );
}
}

int main()
{
vector a = { 3, 44, 38, 5, 47, 25, 36, 26, 27, 2, 46, 4, 5, 50,99 };

mergesort( a, 0, a.size()-1 );

for (auto i : a)
    cout << i<<"  ";
cout << endl;

return 0;

}

刚学的归并排序
调试看不懂哪里有问题

  • 写回答

6条回答 默认 最新

  • devmiao 2015-04-30 08:48
    关注

    程序输出什么地方不对?有没有仔细调试?

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用