java基础之二分法查找】的更多相关文章

一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较.如果在某一步骤数组为空,则代表找不到.这种搜索算法每一次比较都使搜索范围缩小一半. 三.优缺点 二分查找算法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因此,二分查找…
package p1; import java.util.*; public class Sortdob { public static void BubbleSort(int[] arr) {         int temp;//定义一个临时变量         for(int i=0;i<arr.length-1;i++){//冒泡趟数             for(int j=0;j<arr.length-i-1;j++){                              …
package javafirst; import java.util.Arrays; class MaoPao{ //升序排列 /** * @param arr 要排序的数组 * @return int型排序好的升序数组 */ public int[] ascendSort(int[] arr){ for(int i = 0; i < arr.length - 1; i++){ for(int k = 0; k < arr.length - 1 - i; k ++){ if (arr[k]…
算法:当数组的数据量很大适宜采用该方法.采用二分法查找时,数据需是有序不重复的,如果是无序的也可通过选择排序.冒泡排序等数组排序方法进行排序之后,就可以使用二分法查找. 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功:若 x 小于当前位置值,则在数列的前半段中查找:若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止,但是如果当前段的索引最大值小于当前段索引最小值,说明查找的值不存在,返回-1,不继续查找. import…
认识: 猜字游戏 步数 所猜的数 结果 可能值的范围 0     1~100 1 50 太高 1~49 2 25 太低 26~49 3 37 太高 26~36 4 31 太低 32~36 5 34 太高 32~33 6 32 太低 33~33 7 33 正确    二分法要求: 有序数列 有序数组的java代码: package com.test; /** * 二分查找 * @author jingxin * */ public class Test { public static void m…
一.查找的基本概念 查找分为有序查找和无序查找,这里均以数组为对象,有序查找指的是数组元素有序排列,无序查找指的是数组元素有序或无序排列 平均查找长度(Average Search Length,ASL):和指定查找元素key进行比较的表中数据的个数的期望值 对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和. Pi:查找表中第i个数据元素的概率. Ci:找到第i个数据元素时已经比较过的次数. 查找分类:线性查找(顺序查找).二分查找(折半查找).插值查找.斐波那…
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回这个元素,如果没有这个元素,就可以返回一个负数.今天我们来介绍一下折半查找的原理,并自己用代码实现折半查找. 一.数组的折半查找原理 二分查找发,也叫折半查找,它的前提就是被查找的数组的元素,必须是有序(本篇博客数据案例均为升序)排列的. 1>.在查找前对数组进行折半操作 (初始化指针位置) 折半公…
二分法查找原理: 1.只要低位下标不大于高位下标,就进行二分查找(步骤1-3) 2.先在有序的数组中对半查找中间的坐标,如果中标和要查找的下标相等时,找到目标数,那二分结束. 3.如果步骤2没有找到,那就会出现先2种情况:a.中标大于find值;b.中标小于find值: 3.1.如果中标大于find值,说明find值在中标的左边,那么高位就是此时的中标,然后继续二分 3.2.如果中标小于find值,说明find值在中标的右边,那么低位就是此时的中标,然后继续二分 4.如果低位下标大于高位下标:那…
什么是二分法查找 首先,使用二分法查找的前提是:被查找的数组已排好序 具体实现: 假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2. 1.开始令front=0(指向3),end=7(指向88),则mid=3(指向36).因为a[mid]>x,故应在前半段中查找. 2.令新的end=mid-1=2,而front=0不变,则新的mid=1.此时x>a[mid],故确定…
算法:当数据量很大适宜采用该方法.采用二分法查找时,数据需是有序不重复的. 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功:若 x 小于当前位置值,则在数列的前半段中查找:若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止. 假设有一个数组 { 1,2,3,4,5,6,7,8,9,10 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -1.代码如下: public class Dichoto…