快速排序 (java)

来源:互联网 发布:淘宝情报通 编辑:程序博客网 时间:2024/04/30 10:21

package 黑马;
//排序有:插入排序、交换排序、选择排序、归并排序、分配排序等
//下面是快速排序
public class QuickSort {

 
 public static void main(String[] args) {
  int valuse[]={51,33,62,96,87,17,28,51};
  //int valuse[]={5,4,8,3,7,2,1,9,0,6};
   quicSort(valuse,0,valuse.length-1);
 }
 public static int Partition(int R[],int l,int h)
 {
  int i=l,j=h;
 
  int x=R[i];
  while(i<j)
  {
   while(i<j&& R[j]>=x)j--;
   R[i]=R[j];
   while(i<j && R[i]<=x)i++;
   R[j]=R[i];   
  }
  R[i]=x; 
  return i;   
 }
 static int count=0;
 public  static void quicSort(int R[],int s,int t)
 {
  System.out.print("第:"+count+++"次排序:");
  for(int m=0;m<R.length;m++)
  {
   System.out.print(R[m]+" ");
  }
  System.out.println();
  if(s<t)
  {
   int k=Partition(R,s,t);
   quicSort(R,s,k-1);
   quicSort(R,k+1,t);   
  }
  
 }

}

原创粉丝点击