注释o)"/>
排序之快速排序算法(有详细注释o)
public void Sort(int[] array,int left,int right){//如果传递过来的参数,左边不小于右边,即只有一个元素,则可以不用排序if (left >= right)return;//定义比较基准,最左边索引,最右边索引int X = array[left];int i = left;int j = right;//将大于基准的数放右边,小于基准的数放左边,直道i=j,即把所有的数全分类好while (i < j){//从右至左遍历,将小于基准的数放左边while (i < j){//如果找到小于基准的数if (array[j] < X){array[i] = array[j]; //这里的i是数据空缺位,i会在下一个循环自动更新break; //下方的j同理}else{j--; //继续寻找右边的下一个}}//从左至右遍历,将大于基准的数放右边while (i < j){//如果找到大于基准的数if (array[i] > X){array[j] = array[i];break;}else{i++; //继续寻找左边的下一个}}}array[i] = X; //把基准值给空缺数据的索引Sort(array, left, i - 1); //递归基准左半边的数据Sort(array, i + 1, right); //递归基准右半边的数据}
更多推荐
排序之快速排序算法(有详细注释o)
发布评论