quick sort java version_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > quick sort java version

quick sort java version

 2014/10/9 19:01:31  huaxiaoyao  程序员俱乐部  我要评论(0)
  • 摘要:importjava.util.Random;publicclasstest{publicstaticvoidmain(String[]args){int[]arr=generatenumbers(10);show(arr,"beforesort:");quicksort(arr,0,arr.length-1);show(arr,"aftersort:");}staticvoidquicksort(int[]arr,intl,intr){if(l>=r)return;inti=l
  • 标签:Java

import java.util.Random;

public class test {
public static void main(String[] args)
{
int[] arr= generatenumbers(10);
show(arr,"before sort:");
quicksort(arr,0,arr.length-1);
show(arr,"after sort:");
}

static void quicksort(int[] arr,int l, int r)
{
if(l>=r) return ;
int i=l;int j=r;
int pivot=arr[i];//pivot
while(i<j)
{
//from right to left find the number less than pivot
while(i<j && arr[j]>=pivot) j--;
if(i<j) arr[i++]=arr[j];
// now the empty position is arra[j]
//from left to right find the number bigger than pivot
while(i<j && arr[i]<=pivot) i++;
if(i<j)arr[j--]=arr[i];
}
//when i==j then the empty position is i/j so we should set the pivot
arr[i]=pivot;
//recursive call the method
quicksort(arr,l,i-1);
quicksort(arr,i+1,r);

}

static int[] generatenumbers(int length)
{
Random r = new Random();
int [] arr = new int[length];
for(int i=0;i<length;i++)
arr[i]=r.nextInt(100);
return arr;
}

static void show(int[] arr,String msg)
{
System.out.println(msg);
for(int i=0;i<arr.length;i++)
System.out.print(arr[i] + "\t");
System.out.println();
}

发表评论
用户名: 匿名