快速排序的问题
快排假如我选第一个元素为参考点,则从后往前扫;快排假如我选最后一个元素为参考点,则从前往后扫;快排假如我选第一个元素,最后一个元素,中间元素中的最小者为参考点(而且刚好是中间值时),是不是先往左,
还是先往右都没关系?
还有个问题就是:我选第一个元素为参考点,但我还是想从前往后扫,应该怎么处理?
谢谢大家,有代码做参考更好!!!
void Quicksort(int b[], int low, int high) { int i,j; int t; if(low<=high) { t=b[low]; i=low; j=high; while(i!=j) { while(i<j&&b[i]<=t) i++; if(j>i) { b[j]=b[i]; j--; } while(i<j&&b[j]>=t) j--; if(j>i) { b[i]=b[j]; i++; } } b[i]=t; Quicksort(b,low,i-1); Quicksort(b,i+1,high); } }: