精华内容
下载资源
问答
  • java折半查找算法案例代码
    2021-02-28 15:03:44

    折半查找介绍:

    折半查找,找的是一个有序列表。理论就是先找中间的,如果中间数大于大于目标数,那么就只需要找上半份数据中再折半查找就可以了。一直到找到为止,不用遍历所有数据,效率很高。

    实现折半查找的方法案例:package javalm;

    public class biSearch {

    /**

    * @param args

    */

    /*

    折半查找--当查找表是有序表时,可采用折半查找;

    基本思想:在有序表中,取中间元素作为比较对象,若给定值K与中间记录关键字相等,则查找成功;

    若给定值K小于中间记录的关键字,则在表的左半区继续查找;

    若给定值K大于中间记录的关键字,则在表的右半区继续查找,不断重复,直到查找成功/失败。

    */

    //折半查找非递归算法

    //查询成功返回该对象的下标序号,失败时返回-1。

    int BiSearch(int r[],int n,int k)

    {

    int low=0;

    int high=n-1;

    while(low<=high)

    {

    int mid=(low+high)/2;

    if(r[mid]==k)

    return mid;

    else

    if(r[mid]

    low=mid+1;

    else

    high=mid-1;

    }

    return -1;

    }

    //折半查找递归算法

    //查询成功返回该对象的下标序号,失败时返回-1。

    int BiSearch2(int r[],int low,int high,int k)

    {

    if(low>high)

    return -1;

    else

    {

    int mid=(low+high)/2;

    if(r[mid]==k)

    return mid;

    else

    if(r[mid]

    return BiSearch2(r,mid+1,high,k);

    else

    return BiSearch2(r,low,mid-1,k);

    }

    }

    public static void main(String[] args) {

    biSearch bs=new biSearch();

    int r[]={1,2,3,4,5};

    System.out.println(bs.BiSearch(r,5,5));

    System.out.println(bs.BiSearch2(r,1,5,5));

    }

    }

    更多相关内容
  • java实现折半查找算法

    2019-12-06 17:27:55
    所谓的二分查找,指的是将待查的数据序列而分化,然后对比中间中间值和要查找值,判断结果,相等则找到,小于则在左边的子序列找,大于则在右边的子序列找
  • java折半查找算法

    2021-04-17 02:47:29
    high 时表示查找区间为空,查找失败 } Java 代码: /** * 二分查找算法 * * @param srcArray 有序数组 * @param target 被查找的元素 * @retur......6 、不断利用循环和折半查找算法查找一个整数 n 是否在一个无序的 ...

    //当 low>high 时表示查找区间为空,查找失败 } Java 代码: /** * 二分查找算法 * * @param srcArray 有序数组 * @param target 被查找的元素 * @retur......

    6 、不断利用循环和折半查找算法查找一个整数 n 是否在一个无序的 int 型数...

    查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,文中介绍四种查找算法,分别是顺序查找、二分查找、二叉排序树查找和哈希查找。...

    . 6.编写基于Java语言的折半查找算法。 /*** * 功能:该算法实现折半...

    . 6.编写基于Java语言的折半查找算法。 /*** * 功能:该算法实现折半...

    3)利用排序算法将一数组按由小到大排列,输入一个数据,查找在数组中是否存在,采用“折半查 找”加快查找速度。 所谓“折半查找”就是先与中间位置元素进行比较,......

    第八章查找补充作业解答(Java版)_理学_高等教育_教育专区。O(∩_∩)O~ 第八章查找 作业解答 作业解答 1.画出对长度为 10 的有序表进行折半查找的判定树,......

    3)利用排序算法将一数组按由小到大排列,输入一个数据,查找在数组中是否存在,采用“折半查 找”加快查找速度。 所谓“折半查找”就是先与中间位置元素进行比较,......

    Java程序设计大学教程 第五章 算法与数据结构程序是建立在数据结构基础上使用计算机 语言描述的算法,因此简单地讲,程序也 可以表示成:算法+数据结构。 本章介绍算法......

    六、 实验体会 本次试验解决了二分查找和三分查找的问题,加深了对分治法的 2015-2016 学年 第一学期 算法设计与分析实验报告 理解,收获很大,同时我也理解到......

    上传第9章查找习题,二分法查找例题,写出二分查找算法vb,数据结构查找习题,二分法查找c语言,查找习题,数据结构(查找习题),java二分法查找算法,数据结构查找的习题,二分......

    (2)题意 将顺序、折半查找算法设计成线程,启动二个不同 线程同时运行,并计算不...

    public static int binarySearch(int[] table, int value) //折半查找算法,数组元素已按升序排列 { //若查找成功返回元素下标,否则返回-1 if (table!=null)......

    共 5 if(adj.edges[i][k]==1 && visited[k]==0) { visited[k]=1; connected(adj,k,j,c); } else k++; } } 8.写出实现折半查找的算法或程序......

    //当 low>high 时表示查找区间为空,查找失败 } Java 代码: /** * 二分查找算法 * * @param srcArray 有序数组 * @param target 被查找的元素 * @retur......

    2、有序表的查找问题描述折半查找也称为二分查找,作为二分查找对象的数据必须是顺序...

    ("哈希表开放地址法的查找")) { ... } //退出 if (command.equals("退出")) System.exit(0); } 四、算法设计 我负责的是按钮动作的实现。 1、流程图......

    public static int binarySearch(int[] table, int value) { //折半查找算法,数组元素已按升序排列 //若查找成功返回元素下标,否则返回-1 if (table!=null)......

    ? 熟悉数组的排序、查找等算法。 ? 掌握字符数组的使用方法。 实验内容: 1) 编写数组的排序程序。 2) 编写折半查找的程序。 3) 编程实现:产生一个 1-12 ......

    8.查找 ① 理解查找的基本概念和查找算法效率的分析方法。 ② 掌握线性表的顺序查找、有序顺序表的折半查找、索引顺序表的分块查找算法。 ③ 理解散列表的概念,......

    展开全文
  • java折半查找法

    2021-03-16 20:16:24
    折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=1,上限为h=5,求中点m=(l+h)/2,用X与中点元素am比较,若X等于...

    折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=1,上限为h=5,求中点m=(l+h)/2,用X与中点元素am比较,若X等于am,即找到,停止查找;否则,若X大于am,替换下限l=m+1,到下半段继续查找;若X小于am,换上限h=m-1,到上半段继续查找;如此重复前面的过程直到找到或者l>h为止。如果l>h,说明没有此数,打印找不到信息,程序结束。

    方法一:

    package suanfa;

    import java.util.*;

    public class zheban {

    public static void main(String[]args)

    {

    int[]a={1,3,6,8,9,89,765};

    int time=search(a,8);

    System.out.println(time);

    }

    public static int search(int[]a,int key)

    {

    int low=1;

    int high=a.length;

    int mid;

    while(low

    {

    mid=(low+high)/2;

    if(key==a[mid-1])

    return mid-1;

    else if(key>a[mid-1])

    low=mid+1;

    else

    high=mid-1;

    }

    return 0;

    }

    }

    方法二:

    package m;

    import java.util.*;

    public class zheban {

    public static int[]data={1,3,5,7,9,11,22,44,67,89};

    public static void main(String[]args)

    {

    System.out.println("please enter the data you will find:");

    Scanner scan=new Scanner(System.in);

    int key=scan.nextInt();

    zheban(key,0,9);

    }

    public static boolean zheban(int key,int low,int high)

    {

    int l=low;

    int h=high;

    int mid;

    while(l

    {

    mid=(l+h)/2;

    if(data[mid]==key)

    {

    System.out.println("find "+"the data is in array "+(mid+1));

    return true;

    }

    else if(key

    h=mid-1;

    else if(key>data[mid])

    l=mid+1;

    }

    System.out.println("failed");

    return false;

    }

    }

    展开全文
  • java 折半查找法(二分查找)实例,需要的朋友可以参考一下
  • java折半查找算法实现

    2020-11-05 09:12:13
    折半查找算法: public class hacker_01_zheban { public static void main(String[] args) { int[] arr= {12,10,7,6,2,100}; kuaipai(arr,0,arr.length-1); // 参考我的java快速排序算法 for (int i : arr)...

    折半查找算法:

    public class hacker_01_zheban {
    
        public static void main(String[] args) {
            int[] arr= {12,10,7,6,2,100};
            kuaipai(arr,0,arr.length-1);         // 参考我的java快速排序算法
    
            for (int i : arr) {
                System.out.println(i);
            }
    
            // 有序折半查找
            System.out.println(zheban(arr,12,0,arr.length-1));
    
        }
    
    
        public static boolean zheban(int[] arr, int number,int first,int last)
        {
            // 递归出口
            if(first>=last){
                return false;
            }
            // 中间值下标
            int med_index=(first+last)/2;
            // 查找到值
            if(arr[med_index] == number){
                return true;
            }
            // 所查询number较大,右查
            else if(arr[med_index]<number)
            {
                // 方法中调用有返回值的,需要return返回
                return zheban(arr,number,med_index+1,last);
            }
            // 所查询number较小,左查
            else if(arr[med_index]>number)
            {
                // 方法中调用有返回值的,需要return返回
                return zheban(arr,number,first,med_index-1);
            }
            return false;
        }
    
    
    
    }

    结果:

     

     

    展开全文
  • // 折半查找 public static void main(String[] args) { int[] arr = {2,6,3,1,8,9,10}; int index = binarySearch(arr,8); System.out.print(index);//输出 4 } /** * * @param arr 要进行查找的数组...
  • Java算法折半查找法

    千次阅读 2020-04-26 10:43:49
    Java 算法折半查找法 算法介绍 折半查找法要求线性表是有序的,即表中记录按关键字有序(假设是递增有序的)。 折半查找的基本思路:设 R[low, ···, high] 是当前的查找区间,首先确定该区间的中间位置 mid = ...
  • 第1关:折半查找(二分查找) 本关任务:给定一个排好序的数组,然后输入另一个整数,判断该整数在数组中的什么位置,返回该整数第一次出现的位置(位置从0开始),否则返回-1。 package step1; public class Task ...
  • 折半查找法是效率较高的一种查找方法。假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X, 其基本思想是: 设查找数据的范围下限为l=0,上限为h=4,求中点m=(l+h)/2,用X与中点元素am比较,若X...
  • JAVA实现折半查找算法

    2020-07-16 11:01:13
    JAVA实现折半查找算法 package demo; import java.util.Scanner; public class wdnmd2 { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50, 60}; Scanner sc = new Scanner(System....
  • Java折半查找算法

    2020-05-31 21:10:44
    折半查找 import java.util.Arrays; /** * 折半查找 */ public class Test2 { public static void main(String[] args) { long[] longs1={25,21,41,58,45,78,89,56,25,12,23,14}; Arrays.sort(longs1); System...
  • } //折半的第二种方式 public static int halfSerach_2(int[] arr,int key){ int min = 0,max = arr.length-1,mid; while(min){ mid = (max+min)>>1; if (key>arr[mid]) { min = mid+ 1; }else if(keyarr[mid]) { ...
  • java折半查找

    2022-01-10 21:33:38
    java折半查找
  • 下面的代码中展示有简单查找和二分查找(也叫折半查找法),将进行依次分析。 /* 需求:查找某个元素在数组中的位置 思路: 遍历数组中的每个元素与所要查找的元素进行比较,相同时返回其索引值 步骤: 1.定义...
  • 本文主要向大家介绍了java语言之实现折半查找算法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的。对于没有...
  • 主要介绍了Java数据结构实现折半查找算法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java折半查找法

    2019-03-09 17:07:08
    首先,Java折半查找法适用于有序数组中某一元素下标的查找。例如: //折半查找 public class halfSerach { public static void main(String[] args) { int[] a = {12,23,34,36,47,108}; int index = ...
  • Java 递归和折半查找

    2021-03-02 16:02:24
    递归 递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。... >>相关阅读 《Java选择排序算法》 《Java冒泡排序算法
  • java 快速排序 折半查找的界面实现 (递归与分治
  • 算法复杂度:二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x.时间复杂度无非就是while循环的次数!总共有n个元素...
  • 包括常见的排序算法,以及折半查找,首先对要查找的数据排好序,然后用递归调用的方式实现折半查找(包括了两种实现方式)。指定一个排好序的数组和要查找的值,同时指定要查找的左边界和有边界。左右边界要位于数组...
  • Java实现折半查找(二分查找)的递归和非递归算法转 : http://wintys.blog.51cto.com/425414/94051/***名称:BinarySearch*功能:实现了折半查找(二分查找)的递归和非递归算法.*说明:* 1、要求所查找的数组已有序,...
  • 递归调用的折半查找java代码,算法分析与设计实验报告。
  • 对一组有序序列进行二分查找,找到元素并输出其索引下标,反之则查找失败
  • 折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码有序(通常从大到小有序),线性表必须采用顺序存储、折半查找的基本思想是:取中间记录作为比较对象,若给定值与中间记录...
  • java实现折半查找

    2021-02-12 14:35:04
    } } O(1):直接寻址到 O(n):遍历n个元素 O(logn):随着元素增加,呈现指数关系 O(n2):增加一倍元素,时间增加4倍 折半查找算法时间复杂度最好的情况是O(1),平均情况下是logn。 分析一下,折半查找的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,817
精华内容 4,726
关键字:

java折半查找算法

java 订阅
友情链接: Arcengineerci.rar