标签:
以冒泡排序法为例:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 int creatdata(int arr[],int n,int min,int max) 5 { 6 int i,j,flag; 7 srand(time(NULL));//creat data 8 if(max-min+1<n)return 0; 9 for(i=0;i<n;i++) 10 { 11 do 12 { 13 arr[i]=(max-min+1)*rand()/(RAND_MAX+1)+min; 14 flag=0; 15 for(j=0;j<i;j++) 16 { 17 if(arr[i]==arr[j]) 18 { 19 flag=1; 20 } 21 } 22 } 23 while(flag); 24 } 25 return 1; 26 } 27 void bubblesort(int a[],int n) 28 { 29 int i,j,t; 30 for(i=0;i<n;i++) 31 { 32 for(j=n-1;j>i;j--) 33 { 34 if(a[j-1]>a[j]) 35 { 36 t=a[j-1]; 37 a[j-1]=a[j]; 38 a[j]=t; 39 } 40 } 41 /*printf("第%2d遍:",i+1); 42 for(j=0;j<n;j++) 43 printf("%d",a[j]); 44 printf("\n");*/ 45 } 46 } 47 int main() 48 { 49 int i,a[6]; 50 for(i=0;i<6;i++) 51 { 52 a[i]=0; 53 54 } 55 if(!creatdata(a,6,1,100)) 56 { 57 printf("生成随机数不成功\n"); 58 return 1; 59 } 60 printf("原数据:"); 61 for(i=0;i<6;i++) 62 printf("%d ",a[i]); 63 printf("\n"); 64 bubblesort(a,6); 65 printf("排序后:"); 66 for(i=0;i<6;i++) 67 printf("%d ",a[i]); 68 printf("\n"); 69 return 0; 70 }
标签:
原文地址:http://www.cnblogs.com/zahar/p/4378118.html