这里我分享简单的冒泡排序,原理比较简单。
假设我们要求从小到大排
- 我们每次将左右两个数比较大小, 大数字往后放(更加形象一点就是,重的石头往下掉,轻的泡沫往上升)
经过这样的操作,我们每一轮循环都将当前这一轮的最大值放在了后面
故写出此代码,不是很精简,但是为了理解已经足够清楚。
#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; }