黑马程序员技术交流社区
标题:
快速排序,排序一亿数据用时14秒
[打印本页]
作者:
我若为神
时间:
2015-11-8 22:44
标题:
快速排序,排序一亿数据用时14秒
public class Demo135{
public static void main(String []args){
int arr[]={-1,-5,6,2,0,9,-3,-8,12,7};
QuickSort qs=new QuickSort();
qs.sort(0, arr.length-1, arr);
//输出最后结果
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
class QuickSort{
public void sort(int left,int right,int [] arr){
int l=left;
int r=right;
int pivot=arr[(left+right)/2];//找中间值
int temp=0;
while(l<r){
while(arr[l]<pivot) l++;
while(arr[r]>pivot) r--;
if(l>=r) break;
temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
if(arr[l]==pivot) --r;
if(arr[r]==pivot) ++l;
}
if(l==r){
l++;
r--;
}
if(left<r) sort(left,r,arr);
if(right>l) sort(l,right,arr);
}
}
复制代码
作者:
唐彬
时间:
2015-11-8 23:27
表示很NB!
作者:
chenhaiqian
时间:
2015-11-9 00:11
作者:
li3N
时间:
2015-11-9 13:38
这个就是传说中的希尔排序么。。。说是夹杂位运算什么的
作者:
ln0491
时间:
2015-11-9 14:23
牛B。。。。。。。。。。。。
作者:
雨来
时间:
2015-11-9 15:29
QuickSort qs=new QuickSort(); 没有接触过查一下API
作者:
雨来
时间:
2015-11-9 15:35
原来是自己定义的class QuickSort{
作者:
指西针
时间:
2015-11-9 16:56
这是二分还是?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2