gpt4 book ai didi

c - 以下冒泡排序在 C 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:00:42 25 4
gpt4 key购买 nike

我正在编写一个排序函数来在 C 中实现冒泡排序,但它没有对给定的数组进行排序。这是以下代码。我使用的是 void 函数,所以我无法返回数组并且必须对现有数组进行更改。代码可以很好地编译并运行,但它不会对数组进行排序。

void sort(int values[], int n)
{
// TODO: implement an O(n^2) sorting algorithm
for(int i = 0; i < n; i++)
{
int sp = 0;
for(int j = 0; j < n; j++)
{
if (values[i] > values[i + 1])
{
int first_val = values[i];
int second_val = values[i + 1];

values[i] = second_val;
values[i + 1] = first_val;
sp = 1;
}
}
if (sp == 0)
{
break;
}
}
}

最佳答案

您可以通过说出 values[i] > values[i + 1] 来访问 values[i + 1]。所以i的自然极限应该是n-1

for(int i = 0; i < n - 1; i++)

关于c - 以下冒泡排序在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40990261/

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