用JAVA实现一个快速排序

来源:互联网 发布:手机网络机顶盒遥控器 编辑:程序博客网 时间:2024/06/05 03:51
public class Test1 {//一次快排算法    public static int Partition(int arr[],int left,int right){//以第一个元素为基准将序列划分开,左侧均不大于它,右侧均不小于它int pivot = arr[left];while(left<right){while(left<right&&pivot<=arr[right]) //将比枢纽值小的移到左端right--;arr[left] = arr[right];while(left<right&&pivot>=arr[left]) //将比枢纽值大的移到右端left++;arr[right] = arr[left];}arr[left] = pivot;return left; //返回最后基准值的位置}//快速排序算法public static void QuickSort(int arr[],int left,int right) {if(left<right) //递归跳出条件{int q=Partition(arr,left,right); //左右划分//递归对左右快排QuickSort(arr,left,q-1);QuickSort(arr,q+1,right);}}//打印数组值    public static void Print(int arr[]) {System.out.print("{");for (int i=0; i<arr.length; i++ ){if(i != arr.length-1)System.out.print(arr[i]+",");else System.out.print(arr[i]);}System.out.println("}");}public static void main(String[] args) {int[] arr = {8,3,7,10,3,37,2};System.out.print("原序列=");Print(arr);QuickSort(arr,0,6);System.out.print("排序后=");Print(arr);}}




原创粉丝点击