冒泡排序
大家好,在学习了气泡排序算法的工作原理(通过比较两个相邻的元素,并在必要时交换它们)之后,我试图编码这个问题,但我一直无法做到。
#include<stdio.h>
int swap(int a, int b);
int main() {
// swap(3,4);
int array[20], n,;
printf("Enter the value of integers to be added to the matrix: ");
scanf("%d", &n);
printf("Enter the integers:");
for (int i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
swap(array[1], array[2]);
for (int j = 0; j < n; j++) {
if (array[j] > array[j + 1]) {
swap(array[j], array[j + 1]);}
} else {
continue;
}
}
return 0;
}
int swap(int a, int b) {
int temp = 0;
temp = a;
a = b;
b = temp;
}
这是我写的代码,我想在循环中,当我比较相邻元素时,我不会遍历数组,如果不是,当比较元素时,如何遍历数组的话,如果你能帮助我理解,我在哪里犯了错误,以及如何纠正它,我会非常感激。
此致X
这是我得到的输出
make -s
./main
Enter the value of integers to be added to the matrix: 5
Enter the integers:5 4 3 2 1
3 44 53 42 31 20 1
1条答案
按热度按时间d7v8vwbk1#
你的交换函数是错误的。这是我的代码。但有更好的方法。排序算法(和许多其他事情)列表是更好的和更容易的工作,如果你进入它。