二分查找以及冒泡排序
2016-10-20 08:40
246 查看
二分查找
描述:我们在猜1-100的数字时,一般比较靠谱的猜测是先取一个中间值。比如50,如果被猜数小则开始猜1-49之间的数字,再猜数字是不是25,依次往复。二分查找法道理也大体相同。
//查找这个数字是否在数组里,在则返回下标位置,不在则返回-1 public int binaryFind(int[] arr,int searchKey){ int ins=0; //用来存储数组的中间值 int low=0; //一个数组的开始下标 int pow=arr.length-1; 数组的结束下标 while(true){ ins=(low+pow)/2; if(arr[ins] == searchKey){ return ins; }else if(low > pow){ return -1; }else{ //被查找数小于中间数 if(arr[ins] > searchKey){ pow=ins-1; }else{ low=ins+1; } } } }
如果开始下标大于结束下标那肯定是不成立的,所以返回一个-1作为错误结果,如果成立,那么假如‘被猜测的数’小于中间数,那么数组范围缩小到开始下标和中间数之间,最后,结束下标得向中间数方向移动,用来缩小查找的范围。
冒泡排序
最基础的排序算法public static void main(String[] args) { int[] arr=new int[]{1,2,15,222,45,60}; int temp=0; for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1;j++){ if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(int num:arr){ System.out.println(num); //1,2,15,45,60,222 } }
相关文章推荐
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- Day15 递归进阶和二分查找以及冒泡排序
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- PHP:冒泡排序、快速查找和二分查找的思路以及算法
- java简单算法(二分查找 冒泡排序 判断是否为素数)
- 巩固C语言(四)-----冒泡排序 & 二分查找 & 单次循环对二维数组赋初值
- C 语言 排序算法,冒泡排序,选择排序,插入排序,二分查找
- 二分查找的各种情况实现以及一些注意点
- 冒泡排序和二分查找的区别
- 再看冒泡和选择排序以及折半查找(二分查找)
- Javascript的冒泡排序和二分查找
- 冒泡排序,选择排序,二分查找小结
- 数组 获取最值(最大值 最小值)选择排序 冒泡排序 快速排序 半查找(二分查找) 十进制转其他进制法
- 二分查找之美:二分查找及其变体的正确性以及构造方式
- PHP 数组排序(冒泡排序、选择排序);数组查找(顺序查找、二分查找)
- java的String类和StringBuffer的应用 冒泡排序 选择元素 二分查找
- Java选择排序、冒泡排序、直接插入排序与二分查找
- java实现的选择排序、冒泡排序、二分查找
- 冒泡排序、二分查找、单向链表操作
- 如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式