随机快排算法

来源:互联网 发布:2016年7月出口数据 编辑:程序博客网 时间:2024/04/24 14:09

package Sort;import java.util.Random;import com.sun.java_cup.internal.version;public class QuickSort {//取第一个数划分 public void quicksort(int []a,int start,int end) { if(start==end||end<0 start="">end) return ; int i=start,j=end; int temp=a[i]; while(itemp&&i<j)j--; a[i]=a[j]; while(a[i]<=temp&&i<j)i++; a[j]=a[i]; } a[j]=temp; quicksort(a, start, j-1); quicksort(a, j+1, end); } //随机划分快排 public void quicksort1(int []a,int start,int end) { if(start==end||end<0 start="">end) return ; int i=start,j=end; Random random =new Random(System.currentTimeMillis()); int k=Math.abs(random.nextInt()%(j-i+1))+i; int temp=a[k]; swap(a[start], a[k]); while(itemp&&i<j)j--; a[i]=a[j]; while(a[i]<=temp&&i=start) quicksort1(a, start, j-1); if(j+1<=end) quicksort1(a, j+1, end); } public void swap(int value1,int value2) { int temp=value1; value1=value2; value2=temp; } public static void main(String[] args) {QuickSort qs=new QuickSort();Random random =new Random(System.currentTimeMillis());int a[]=new int[100];for(int k=0;k<100;k++){a[k]=random.nextInt()%100+1;System.out.print(a[k]+" ");}qs.quicksort1(a, 0, a.length-1);System.out.println();for(int m:a)System.out.print(m+" ");int []b={3,2};qs.quicksort(b, 0, 1);System.out.println();for(int m:b)System.out.print(m+" ");}}

0 0
原创粉丝点击