算法实践篇-快速排序-随机化版本

来源:互联网 发布:2016雾霾数据统计图 编辑:程序博客网 时间:2024/05/16 07:07
package com.sort;import java.util.Random;public class RandomQuickSort {private static int partition(int []data ,int p,int r){int random=new Random().nextInt(r-p)+p;int tmpR=data[random];data[random]=data[r];data[r]=tmpR;int x=data[r];int i=p-1;for(int j=p;j<=r-1;j++){if(data[j]<=x){i=i+1;int tmp=data[i];data[i]=data[j];data[j]=tmp;}}int tmp=data[i+1];data[i+1]=data[r];data[r]=tmp;return i+1;}public static void quickSort(int[]data,int p,int r){if(p<r){int q=partition(data,p,r);quickSort(data,p,q-1);quickSort(data,q+1,r);}}public static void main(String[] args) {int[] data=new int[]{1,3,7,9,11,12,5,4};for(int i=0;i<data.length;i++){System.out.print(data[i]+" ");}System.out.println();quickSort(data,0,data.length-1);for(int i=0;i<data.length;i++){System.out.print(data[i]+" ");}System.out.println();}}

0 0
原创粉丝点击