起泡排序

来源:互联网 发布:excel表格不能合计数据 编辑:程序博客网 时间:2024/04/27 00:54
 
#include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}void   sort(int   *a,int   n) { int   bc=0;//比较次数int   jc=0;//交换次数int   i,j,temp; int flag=0;for(i=0;i <n-1;i++) { flag=0;for(j=2;j<=n-i;j++) { if(a[j]<a[j-1]) { swap(&a[j],&a[j-1]);jc++; flag=1;        } bc++; } if(!flag)     //如果没有交换,则说明排序完成break;} printf( "比较次数d\n ",bc); printf( "交换次数d\n ",jc); } int   main() { int   a[21],i; for(i=1;i<=20;i++) { a[i]=50-i; printf( "%d\t ",a[i]);} sort(a,20); printf( "排序后\n"); for(i=1;i <=20;i++) { printf( "%d\t ",a[i]); } return 1;} 

原创粉丝点击