返回首页   进站必读

18.3 冒泡排序


18.3 冒泡排序

冒泡排序是升序排序的形象说法。
升序排序:若一组数据存储在某一数组中,完成升序排序后,小下标处存放小值,大下标处存放大数。
算法描述:将一组数据中相邻两元素两两比较,若小下标处存放了大数则进行数据交换,若从待排序元素起始处到结束处元素比较完毕,则数列中的最大值将被排列到数列的最尾端,这样的一次操作叫做一次冒泡。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LEN 5

void init(int num[], int len)
{
	int i;

	srand(time));
	for (i = 0; i < len; i++)
		printf("%d ",num[i] = rand() % 100);
	printf("\n");
}

void bullue(int num[], int len)
{
	int i, j, tmp;

	for (i = 0; i < len - 1; i++) {
		for (j = 0; j < len - i - 1; j++) {
			if (num[j] > num[j + 1]) {
				tmp = num[j];
				num[j] = num[j + 1];
				num[j + 1] = tmp;
			}
		}	
	}
}

int main(void)
{
	int i, num[LEN];

	init(num, LEN);

	for (i = 0; i < LEN; i++)
		printf("%d ",num[i]);
	printf("\n");
	return 0;
}