冒泡排序算法(Bubble Sort):
思路:多次比较和交换来实现;通过相邻数据交换来达到排序的目的;
步骤:1、对数组中的各个数据依次比较相邻的两个元素的大小;
2、如果前面的数据大于后面的数据,就交换这两个数据;经过一轮的多次比较排序后,便可以吧最小的数据排好;
3、然后,再用同样的方法把剩下的数据逐个进行比较,最后便可以按照从小到大的顺序排号数组中各数据的顺序;
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
void BubbleSort(int *a ,int len)
{
int i, j, k,temp;
for(i = 0; i <= len - 1; i ++)
{
for(j = len - 1; j > i; j --)
{
if(a[j-1] > a[j])
{
temp = a[j-1];
a[j-1] = a [j];
a[j] = temp;
}
}
printf("第%d步排序的结果: ",i);
for(k = 0; k < len; k ++)
{
printf("%d ",a[k]);
}
printf("\n");
}
}
void main()
{
int shuzu[SIZE],i;
srand(time(NULL));
for(i = 0; i < SIZE; i ++)
{
shuzu[i] = rand()/1000 + 100;
}
printf("排序前的数组: ");
for(i = 0; i < SIZE; i ++)
{
printf("%d ",shuzu[i]);
}
printf("\n");
BubbleSort(shuzu,SIZE);
printf("排序后的数组为: \n");
for(i = 0; i < SIZE; i ++ )
{
printf("%d ",shuzu[i]);
}
printf("\n");
}
运行结果: