关于快排的一个小问题
今天想学下快排,到网上翻了翻别人的代码:程序代码:
void quicksort(int a[],int left,int right) { int i,j; int t,temp; if(left>right) return; i=left; j=right; temp=a[left]; while(i!=j) { while(a[j]>=temp&&i<j) j--; while(a[i]<=temp&&i<j) i++; if(i<j) { t=a[i]; a[i]=a[j]; a[j]=t; } } a[left]=a[i]; a[i]=temp; quicksort(a,left,i-1); quicksort(a,i+1,right); }
我试着抄了下,不小心抄成了这样:
程序代码:
void quicksort(int a[],int left,int right) { int i,j; int t,temp; if(left>right) return; i=left; j=right; temp=a[left]; while(a[j]>=temp&&i<j) j--; while(a[i]<=temp&&i<j) i++; if(i<j) { t=a[i]; a[i]=a[j]; a[j]=t; } a[left]=a[i]; a[i]=temp; quicksort(a,left,i-1); quicksort(a,i+1,right); }
结果也能运行,我懵了。
求指教。