/*------------------------------------------------- 19-2.c -------------------------------------------*/
#include "stdio.h"
void bubbleSort(int array[],int arraySize)
{
int i,j,tmp ,flag = 1;
for(i=0;i<arraySize-1 && flag == 1;i++){ /*arraySize个元素的序列执行arraySize-1趟冒泡排序*/
flag = 0; /*flag初始化为0*/
for(j=0;j<arraySize-i;j++) {
if(array[j]<array[j+1]) { /*数据交换,将较小的数据往后交换,实现从大到小排序*/
tmp = array[j+1];
array[j+1] = array[j];
array[j] = tmp;
flag = 1; /*发生数据交换,标志flag置为1,防止有序后,继续进行无意义循环*/
}
}
}
}
int main()
{
int i,array[10];
printf("Input ten integer\n");
for(i=0;i<10;i++)
{
scanf("%d",&array[i]); /*循环输入10个整数*/
}
bubbleSort(array,10); /*执行冒泡排序*/
printf("\nThe result of bubble sorting for the array is\n");
for(i=0;i<10;i++)
printf("%d ",array[i]); /*输出排序后的结果*/
getchar();
getchar();
}
程序运行结果:
Input ten integer
1 22 3 44 5 66 7 88 9 10
The result of bubble sorting for the array is
88 66 44 22 10 9 7 5 3 1