快速排序,顾名思义,是一种速度快,效率高的排序算法。
1定义i=0,j=A.lenght-1,i为第一个数的下标,j为最后一个数下标
2从数组的最后一个数Aj从右往左找,找到第一小于key的数,记为Aj;
3从数组的第一个数Ai 从左往右找,找到第一个大于key的数,记为Ai;
4交换Ai 和Aj
--------------------- 本文来自 Yexiaofen 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Yexiaofen/article/details/78018204?utm_source=copy
递归:
void quick_sort(int m[],int l,int r){ int i=l,j=r; int x=m[i]; if(l<r){ while (i<j) {//一次不行,进行多次 while (i < j && m[j] >= x)//从右向左,找比x小的 j--; if (i < j) { m[i] = m[j]; i++; } while (i < j && m[i] <= x)//从左向右,找比x大的 i++; if (i < j) { m[j] = m[i]; j--; } m[i] = x; } quick_sort(m,l,i-1);//递归调用 quick_sort(m,i+1,r); } }
原文:https://www.cnblogs.com/nickup/p/9748188.html