从新的角度看冒泡算法
程序代码:
#include <time.h> #include <Windows.h> #include <iostream> using namespace std; void sort1(int a[],int n) { int i,j; for(i=0;i<n/2;i++) { for(j=i+1;j<n-i;j++) { if(a[j]<a[i]) { int temp=a[j]; a[j]=a[i]; a[i]=temp; } } for(j=i+1;j<n-i-1;j++) { if(a[j]>a[j+1]) { int temp1=a[j]; a[j]=a[j+1]; a[j+1]=temp1; } } } } void sort0(int a[],int n) { int i,j; for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(a[j]>a[j+1]) { int temp1=a[j]; a[j]=a[j+1]; a[j+1]=temp1; } } } } int cmp(const void *n,const void *m) { return (*(int *)n)-(*(int *)m); } int main() { int a[10]={2,1,3,7,5,9,8,6,0,10}; time_t t; t=time(NULL); // sort0(a,10);//普通冒泡算法 时间00:00:02.01 //sort1(a,10);//双向冒泡算法 时间00:00:01.56 qsort((void *)a,5,sizeof(a[0]),cmp);//快速排序算法 时间00:00:01.96 for(int i=0;i<10;i++) { cout<<a[i]<<" "; } cout<<t<<endl; return 0; } 追求更好更快 算法的魅力