import java.util.Arrays;
公共类主{
publicstaticvoidmain (字符串[ ] args ) {
int [ ] data={ 2,3,5,1,4,5,2,13,51,9,10,15,17,6,21,33,44,77,22 };
system.out.println (arrays.tostring (data );
快速排序(数据,0,数据.长度-1);
system.out.println (arrays.tostring (data );
索引=二进制搜索(数据,4 );
system.out.println (索引;
}
隐私保护分区(int [ ] data,int left,int right ) {
int i=left;
int j=right;
//pivot
int pivot=data [ left (右左)/2]
//完成排序
wile(I=j ) {
//从右向左找到小于第一个pivot的数
while(data[j]pivot ) {
j----;
}
//从左到右找到大于第一个pivot的数量
while(data[I]pivot ) {
I;
}
//交换
if(I=j ) {
int p=data[i];
data[i]=data[j];
data[j]=p;
I;
j----;
}
}
返回I;
}
publicstaticvoidquicksort (int [ ]数据,int left,int right ) {
intindex=partition (数据、左、右);
左索引-1(if )
快速排序(数据、左、索引-1);
}
if (索引权限) {
快速排序(数据、索引、权限);
}
}
publicstaticintbinarysearch (int [ ]数据,int target )。
int left=0,right=data.length - 1;
wile(left=right ) {
int mid=left (右左)/2;
if(data[mid]target ) {
left=mid 1;
}
if(data[mid]=target ) {
right=mid - 1;
}
}
返回左;
}
publicintbinarysearchrecur (int [ ] data,int target,int left,int right ) {
if (左光线) {
返回左;
}
int mid=left (右左)/2;
if(data[mid]target ) {
returnbinarysearchrecur (数据、目标、mid 1、right );
} else {
returnbinarysearchrecur (数据、目标、左、mid - 1 );
}
}
}
谷歌快速排序和二分查找
func main () ARR:=[]int ) 0,1,2,3,4,5,6 ) fmt.println (binary search ) ARR,5 ) } func Binary ),只需2分钟.
二分之一的数据结构寻找——Java语言的实现
场景描述:设数据序列的长度为n,调查是否在数据序列中,若有,则返回到序列中的第几个位置。 首先想到的可能是按照顺序,从前到后一个个地找。 如果最后找不到
,则说明 ...数据结构和算法设计专题之---二分查找(Java版)
1.前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序 2.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后:将要查找的值和数组的中值 ...
二分查找(Java)
二分查找的前提的要查找的数组必须有序. 代码如下: 程序1 public class source { public int binary_sort(int[] array, int item) { ...
二分查找(Java实现)
二分查找:递归实现 public class BinarySearch { /** * @param arr 代查找的数组,需要有序 * @param left 查找区间的左界限 * @param r ...
二分查找-Java版
/** * * 二分查找算法 * * * * @param srcArray 有序数组 * * @param target 查找元素 * * @return srcArray数组下标,没找到返回-1 ...
二分查找java实现
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 二分查找思路非常简单,由粗暴的遍历查找改为 ...
二分查找java代码
public int find(long searchKey){ int i; int begin = 0; int end = nElems - 1; while(true){ i = (begin ...
快速排序和二分查找(Javascript)
var data = [8, 3, 4, 1, 18, 22, 11, 3, 5, 6, 2, 1, 77] quickSort(data, 0, data.length - 1) console.l ...
随机推荐
移动开发中使用Onsen UI的笔记
onsen var m_index = ons.bootstrap() 初始化框架 m_index 赋值 增加对象. m_index.value('getUser',{ // user:window. ...
jQuery基础选择器
attr()方法的功能是设置或获取元素的某项属性值. attr("disabled", "true”)表示使该功能不可用. #id 选择器 $("#my_id& ...
WPF随手小记之二 ——改变DataGrid样式
大部分时候我们并不需要手动改变DataGrid的样式,因为用默认的其实也看得过去,而且在DataGrid中的数据也远比外观重要. 但总有时候,我们需要做点必要的UI修改来使DataGrid更美观. 一 ...
jQuery 遍历 – 过滤
缩小搜索元素的范围 三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素. 其他过滤方法,比如 filter() 和 not() ...
从零开始学安全(十四)●Windows Server 2012 R2 本地搭建FTP服务器
打开仪表盘添加角色和功能向导 下一步 等待安装完成 打开iis 新建站点 点击 选一个目录作为 ftp文件服务器的存储路径 后面就和iis 创建站点一样了 匿名就不需要密码 就可以访问基本需要特定的账 ...
to_date
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; 会话已更改. SQL> SELECT TO_DATE(' ...
2.12 C++ explicit关键字详解
参考:http://www.cnblogs.com/ymy124/p/3632634.html 总结: 带参数的构造函数中有两种比较常见的构造函数:拷贝构造函数和转型构造函数. 转型构造函数只有一个参 ...
14. js字符串截取substring用法
columnIds = columnIds.substring(0, columnIds.length-1);
IOS网络篇1之截取本地URL请求(NSURLProtocol)
本文转载至 http://blog.csdn.net/u014011807/article/details/39894247 NSURLProtocol 是iOS中非常重要的一个部分,我们经常会在以下 ...