📄 ð
字号:
#define MAXN 20
#include <stdlib.h>
/* 对数组 a 中的前 n 个元素进行冒泡法排序 */
void bubble_sort(int a[], int n)
{
int i, j;
int t;
n--;
while(n > 0)
{
/* 遍历 */
j = 0;
for(i = 0; i < n; i++)
{
if(a[i] > a[i + 1])
{
/* 如果前一个数比后一个数大,则相互交换 */
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
/* 记录被交换的下标号 */
j = i;
}
}
/* 由于最大的数肯定会被交换到最后,
* 因此下一次比较时不需要再比较全部的结点,
* 只要比较到最后被交换的数之前即可。
*/
n = j;
}
}
void main()
{
int i, n;
int data[MAXN];
int scount = 0;
printf("\nInput n (n <= 20) = ");
scanf("%d", &n);
if(n > MAXN - 1)
{
printf("### n > %d ###\n", MAXN - 1);
exit(1);
}
/* 随机生成 n 个数 */
randomize();
printf("Before: ");
for(i = 0; i < n; i++)
{
data[i] = rand();
printf("%6d", data[i]);
}
/* 排序 */
bubble_sort(data, n);
/* 输出结果 */
printf("\nAfter: ");
for(i = 0; i < n; i++)
printf("%6d", data[i]);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -