快速排序及二分查询测试
2016-11-19 00:00
253 查看
摘要: 无聊,搬迁原来的iteye的博客过来~~
package wuliao; import java.util.Random; public class SearchTest { public static void main(String[] args) { SearchTest test = new SearchTest(); test.search(); } public void search() { int key = 0; int[] data = new int[10000000]; Random r = new Random(); for (int i = 0; i < data.length; i++) { data[i] = r.nextInt(data.length * 2); if(i == data.length /3){ key = data[i]; } } //System.out.println(ArrayUtils.toString(data, "")); long s = System.currentTimeMillis(); quickSort(data,0,data.length-1); System.out.println("快速排序:数量:"+data.length + ";时间:"+(System.currentTimeMillis() - s)); //System.out.println(ArrayUtils.toString(data, "")); s = System.currentTimeMillis(); int rt = binarySearch(data,key); System.out.println("二分查找:时间:"+(System.currentTimeMillis() - s)+ (rt != -1?"ms ;find key index : " + rt:"have not exist")); } public int binarySearch(int[] data,int key){ int start = 0; int end = data.length-1; while(true){ int mid = (start + end)/2; if(data[mid] > key){ start = 0; end = mid; }else if(data[mid] < key){ start = mid+1; }else{ return mid; } if(start >= end){ return -1; } } } public void quickSort(int[] data, int left, int right) { if(left >= right) return; int index = (left + right) / 2; int mid = data[index]; int i = left-1, j = right+1; while (true) { while (data[++i] < mid); while (data[--j] > mid); if(i >= j){ break; } swap(data, i, j); } quickSort(data,left,i-1); quickSort(data,j+1,right); } public void swap(int[] data, int i, int j) { int t = data[i]; data[i] = data[j]; data[j] = t; } }
相关文章推荐
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- 插入,冒泡,选择,快速排序,二分查找
- 插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序
- #笔记#圣思园 JavaSE 第35讲——冒泡排序、交换排序、快速排序、二分查找
- #1133 : 二分·二分查找之k小数 ( 快速排序, 分治 OR nth_element() 函数)
- 关于对sql2000查询结果进行相关度排序的测试
- 常见排序集合(冒泡排序,选择排序,直接插入排序,二分插入排序,快速排序,希尔排序,归并排序)
- 2013 0314 二分查找 快速排序 空间复杂度
- 递归算法——归并排序,快速排序,二分查找
- c语言 快速排序 和 二分 查找 模型
- 快速排序 以第一个元素为中轴 并测试1000000个整形元素的速度
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- 插入,冒泡,选择,快速排序,二分查找
- Order by/子查询 吸收索引 快速测试 ....
- 快速排序qsort()函数和二分查找bsearch()函数
- c版快速排序 + 随机产生一组测试数据
- 快速排序和二分查找的练习
- 给大家分享下:快速排序、冒泡排序、二分查找
- 【模版】快速排序,二分查找及其求其上下界函数
- 快速排序与二分查找