标签:
4-2 BubbleSort.c
1 #include <stdio.h> 2 #include "4-1 CreateData.c" 3 #define ARRAYLEN 6 4 void BubbleSort(int a[],int n) 5 { 6 int i,j,t; 7 for(i=0;i<n-1;i++) 8 { 9 for(j=n-1;j>i;j--) 10 { 11 if(a[j-1]>a[j]) 12 { 13 t=a[j-1]; 14 a[j-1]=a[j]; 15 a[j]=t; 16 } 17 } 18 printf("第%2d遍:",i+1); 19 for(j=0;j<n;j++) 20 printf("%d ",a[j]); 21 printf("\n"); 22 } 23 } 24 void BubbleSort1(int a[],int n) 25 { 26 int i,j,t,flag=0; //flag用来标记是否发生交换 27 for(i=0;i<n-1;i++) 28 { 29 for(j=n-1;j>i;j--) 30 { 31 if(a[j-1]>a[j])//交换数据 32 { 33 t=a[j-1]; 34 a[j-1]=a[j]; 35 a[j]=t; 36 flag=1; 37 } 38 } 39 printf("第%2d遍:",i+1); 40 for(j=0;j<n;j++) 41 printf("%d ",a[j]); 42 printf("\n"); 43 if(flag==0) //没发生交换,直接跳出循环 44 break; 45 else 46 flag=0; 47 } 48 } 49 int main() 50 { 51 int i,a[ARRAYLEN]; 52 for(i=0;i<ARRAYLEN;i++) 53 a[i]=0; 54 if(!CreateData(a,ARRAYLEN,1,100)) 55 { 56 printf("生成随机数不成功!\n"); 57 getch(); 58 return 1; 59 } 60 printf("原数据:"); 61 for(i=0;i<ARRAYLEN;i++) 62 printf("%d ",a[i]); 63 printf("\n"); 64 BubbleSort1(a,ARRAYLEN); 65 printf("排序后:"); 66 for(i=0;i<ARRAYLEN;i++) 67 printf("%d ",a[i]); 68 printf("\n"); 69 getch(); 70 return 0; 71 }
标签:
原文地址:http://www.cnblogs.com/wozixiaoyao/p/5683147.html