因为快速算法的时间复杂度,快速排序的速度也比大部分排序的速度要快。在最坏的情况下,算法QUICKSORT 的运行时间是0(n²),然而如果总是选择中项作为主元,它的时间复杂性是O( nlog n),这样,就需要spilt算法来帮忙寻找。多余的也不多说了,书上都有,接下来直接上代码!
#include#include int split(int A[],int low,int high) { int i = low , temp; int x = A[low]; for(int j=low+1;j<=high;j++){ if(A[j]<=x){ i++; if(i!=j){ temp = A[i]; A[i] = A[j]; A[j] = temp; } } } temp = A[low]; A[low] = A[i]; A[i] = temp; return i; } void quicksort(int A[],int low,int high) { int w; if(low 注释那一段是为了更好的理解划分算法 ,当年第一次接触的时候也有点懵,所以现在总结一下,把每一步划分的过程都写出来了,供大家学习。
程序实现:
可以改变主函数,实现元素个数的输入
int main() { int n; printf("输入多少个元素:"); scanf("%d",&n); int A[n]; for(int i=0;i程序实现:
感谢你能看到这里,希望这篇文章能帮到你!



