C语言:冒泡排序---详细解释
//冒泡排序数字,仅仅适用于数组无序的时候,若有序则不能使用冒号排序
例如:
数字组:5,54,64,98,47
/*
1: 54,64,98,47,5 4次
2: 64,98,54,47,5 3次
3: 98,64,54,47,5 2次
4: 98,64,54,47,5 1次
*/
//规律:比较轮数 = N - 1
//每轮比较次数 = N - i - 1
代码如下:
#include <stdio.h>
#define N 5
int main()
{
int num[N]={87,4,45,3,96} ;
int i, j;//外层为i,内层为j。
int temp;//临时存储变量
//外层控制轮数
for(i = 0; i < i; i++)
{
//内层控制每轮比较次数
for(j = 0; j < i; j++)
{
if(num[j] > num[j + 1])
//注意!!!!!把 <号 改成 >号 就变成了升序排序 ~
{
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
printf("排序后的结果为:\n");
for(i = 0; i < N; i++)
{
printf("%d\t", num[i]);
}
return 0;
}
运行结果如下:
本文来自博客园,作者:竹等寒,转载请注明原文链接。