A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class Demo135{
  2.         public static void main(String []args){
  3.                 int arr[]={-1,-5,6,2,0,9,-3,-8,12,7};
  4.                 QuickSort qs=new QuickSort();
  5.                 qs.sort(0, arr.length-1, arr);
  6.                 //输出最后结果
  7.                 for(int i=0;i<arr.length;i++){
  8.                         System.out.print(arr[i]+"\t");
  9.                 }
  10.         }
  11. }
  12. class QuickSort{
  13.         public void sort(int left,int right,int [] arr){
  14.                 int l=left;
  15.                 int r=right;
  16.                 int pivot=arr[(left+right)/2];//找中间值
  17.                 int temp=0;
  18.                 while(l<r){
  19.                         while(arr[l]<pivot) l++;
  20.                         while(arr[r]>pivot) r--;
  21.                         if(l>=r) break;
  22.                         temp=arr[l];
  23.                         arr[l]=arr[r];
  24.                         arr[r]=temp;
  25.                         if(arr[l]==pivot) --r;
  26.                         if(arr[r]==pivot) ++l;
  27.                 }
  28.                 if(l==r){
  29.                         l++;
  30.                         r--;
  31.                 }
  32.                 if(left<r) sort(left,r,arr);
  33.                 if(right>l) sort(l,right,arr);
  34.         }
  35. }
复制代码


7 个回复

倒序浏览
表示很NB!
回复 使用道具 举报
回复 使用道具 举报
这个就是传说中的希尔排序么。。。说是夹杂位运算什么的
回复 使用道具 举报
牛B。。。。。。。。。。。。
回复 使用道具 举报
QuickSort qs=new QuickSort();  没有接触过查一下API
回复 使用道具 举报
雨来 高级黑马 2015-11-9 15:35:05
7#
原来是自己定义的class QuickSort{
回复 使用道具 举报
这是二分还是?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马