这里我分享简单的冒泡排序,原理比较简单。
假设我们要求从小到大排
- 我们每次将左右两个数比较大小, 大数字往后放(更加形象一点就是,重的石头往下掉,轻的泡沫往上升)
经过这样的操作,我们每一轮循环都将当前这一轮的最大值放在了后面
故写出此代码,不是很精简,但是为了理解已经足够清楚。
#include <stdio.h>
int main() {
int n;
int nums[105];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 冒泡排序
for (int i = 0; i < n; i++) {
for (int j = 1; j < n - i; j++) {
if (nums[j - 1] > nums[j]) {
int t = nums[j - 1];
nums[j - 1] = nums[j];
nums[j] = t;
}
}
}
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
}
return 0;
}

京公网安备 11010502036488号