gpt4 book ai didi

C++ 插入排序崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:02 25 4
gpt4 key购买 nike

我创建了一个 vector 并用随机整数填充它。然后我打印出所有未排序的值并调用 insertionSort()。在这个调用之后,数字应该按排序顺序打印。我的程序不断崩溃,我不确定为什么。

这是我的代码:

#include <cstdlib>
#include <iostream>
#include <vector>
#include <time.h>

using namespace std;

int listSize;

vector<int> intList()
{
cout << "How many numbers do you want to sort?\n";
cin >> listSize;
vector<int> list;
for (int i = 0; i < listSize; i++)
{
int random = rand() % 10001;
list.push_back(random);
}

return list;
};

void insertionSort(vector<int>& data)
{
int i, j, tmp;

for (i = 1; data.size(); i++)
{
j = i;
tmp = data[i];
while (j > 0 && tmp < data[j-1])
{
data[j] = data[j-1];
j--;
}
data[j] = tmp;
}
}

int main(int argc, char** argv)
{
srand(time(0));
vector<int> list = intList();
for (vector<int>::iterator it = list.begin(); it != list.end(); it++)
{
cout << *it << " ";
}
cout << "\n";

insertionSort(list);

for (vector<int>::iterator it = list.begin(); it != list.end(); it++)
{
cout << *it << " ";
}

}

最佳答案

这个

for (i = 1; data.size(); i++)

应该是:

for (i = 1; i<data.size(); ++i)

否则 for 永远不会中断。

关于C++ 插入排序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com