【发布时间】:2015-12-29 00:58:35
【问题描述】:
我的排序功能似乎只重复列出一千个数字中的 3 个。不知道为什么。有什么想法吗?
我的排序数组从这里开始。我创建了一个遍历 n 个数字的 for 循环。然后我比较这些值并创建一个交换算法。我假设我的交换算法有缺陷。
/**
* Sorts array of n values.
*/
void sort(int values[], int n)
{
//TODO: implement an O(n^2) sorting algorithm
for (int i = 0; i < n - 1; i++)
{
if (values[i] < values[i + 1])
{
int holder = values[i];
values[i] = holder;
values[i + 1] = values[i];
values[i] = holder;
printf("%i\n", values[i]);
}
}
return;
}
【问题讨论】:
-
你不给很多人发
values[i] = holder;吗?如果您学会使用调试器以及如何逐行执行代码,那么这样的问题真的很容易找到。无论如何,学习如何使用调试器可能是个好主意,因为您的sort函数不会对数组进行完全排序。 -
顺便说一句,如果您在排序时遇到问题,为什么要向我们展示不相关的
search函数?您可能想read about how to ask good questions,并学习如何创建Minimal, Complete, and Verifiable Example。