如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
冒泡排序的时间复杂度为O(n2)。这里设置一个标志,若一次排序未发现数据交换,则说明已排序完成。程序如下,冒泡排序函数<bubble.c>,测试程序<test.c>。<bubble.c>/****************************************Name:bubble.c*Description:实现冒泡排序*Author&Date:JoshuaChan2011/11/11**************************************/#include<stdbool.h>voidbubble_sort(int*array,intsize){inti,j;inttmp;boolflag;/*设置标志,一次排序未发现数据交换,则结束*/for(i=size-1;i>=0;i--){flag=true;for(j=0;j!=i;j++){if(array[j]>array[j+1]){tmp=array[j];array[j]=array[j+1];array[j+1]=tmp;flag=false;}}if(flag)break;}}<test.c>/****************************************Name:test.c*Description:排序测试程序*Author&Date:JoshuaChan2011/11/11**************************************/#include<stdio.h>voidprint_array(int*array,intsize);voidinsertion_sort(int*array,intsize);voidbubble_sort(int*array,intsize);voidselection_sort(int*array,intsize);intn[9]={6,9,5,2,8,4,1,3,7};intmain(void){printf("Theoriginalarrayis:");print_array(n,9);//selection_sort(n,9);bubble_sort(n,9);//insertion_sort(n,9);printf("Thesortedarrayis:");print_array(n,9);return0;}voidprint_array(int*array,intsize){inti=0;while(i<size)printf("%d,",array[i++]);putchar('\n');}