找到第一个数作为基准数,在左右两边定义两个指针,右边的指针去找比当前基准数小的数据,停止;左边的指针去找比当前基准数大的数据,停止;左右两边的数值互换。然后继续,知道两个指针重合,重合之后我们需要基准数和重合的数字互换,基准数就已经排好序了。之后按照重合的位置分成左右两个数组,继续之前的逻辑。(O(n*logn))
找到第一个数为基准数,定义两个指针,(指针i寻找比当前大的数,指针j寻找比当前小的数,找到后位置互换,若指针重合,则将它与第一个互换)
public class QuickSort { public static void main(String[] args) { int[] arr = new int[] {2,56,8,45,6,25}; quickSort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } public static void quickSort(int arr[],int left,int right) { if(left>=right) { return; } int base = arr[left]; int i = left; int j = right; while(i!= j) { while(arr[j] >=base&&i欢迎分享,转载请注明来源:内存溢出
评论列表(0条)