快速排序

xiaoxiao2023-02-02  35

package com.liuyu.array; public class Point{ public static void main(String[] args) { int[] a = {4,63,2,4,4,6,43,2,3}; quickSort(a, 0, a.length - 1); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } } static int Partition(int[] a, int left, int right) { int tmp; //进行一趟快速排序,返回中心记录位置 int pivot = a[left];//把中心置于a[0] while (left < right) { while(left<right && a[right]>=pivot) right--; //将比中心记录小的移到低端 tmp = a[right]; a[right] = a[left]; a[left] = tmp; while(left<right && a[left]<=pivot) left++; tmp = a[right]; a[right] = a[left]; a[left] = tmp; //将比中心记录大的移到高端 } a[left] = pivot; //中心移到正确位置 return left; //返回中心位置 } public static void quickSort(int[] a, int left, int right) { if(left >= right - 1) return; int pivot = Partition(a,left,right); quickSort(a, left, pivot-1); quickSort(a, pivot+1, right); } }
转载请注明原文地址: https://www.6miu.com/read-4981054.html

最新回复(0)