我正在尝试制作一个不使用排序函数对数组进行排序的程序(不适用于对象或结构)。我已经使大于一起作用了,但是小于一不断地将数组中最大的元素更改为一并且排序错误,并且当与大于函数一起使用时,第一个元素变成了一个大数。有人可以帮我解决这个问题还是我的编译器。
void min_sort(int array[], const unsigned int size){
for(int k = 0; k < size; k++) {
for(int i = 0; i < size; i++) {
if(array[i] > array[i+1]){
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
}
最佳答案
您没有正确循环。看起来您正在尝试冒泡排序,即:
void min_sort(int array[], const unsigned int size){
for(int k = 0; k < size; k++)
for(int i = k+1; i < size; i++)
if(array[i] < array[k]){
int temp = array[i];
array[i] = array[k];
array[k] = temp;
}
}
关于c++ - C++ 中的数组排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69419141/