当前位置: 首页 > 编程笔记 >

Java实现的两种常见简单查找算法示例【快速查找与二分查找】

郑俊材
2023-03-14
本文向大家介绍Java实现的两种常见简单查找算法示例【快速查找与二分查找】,包括了Java实现的两种常见简单查找算法示例【快速查找与二分查找】的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Java实现的两种常见简单查找算法。分享给大家供大家参考,具体如下:

前言:

查找是指从一批记录当中找出满足制定条件的某一记录的过程。

在平常的程序的编写当中很多时候时用得上的,这里简单介绍两个查找算法

1. 快速查找:

这个是相当简单的,以数组举例,就用一个for循环去查找数组中需要查找的数据

例子:

public static boolean quickSearch(int a[], int x) {
    boolean f = false;
    int length = a.length;
    int i;
    for (i = 0; i < length - 1; i++) {
      if (x == a[i]) {
        f = true;
        break;
      }
    }
    return f;
}

2. 二分法(折半)查找:

二分法查找,其要求数据序列必须是呈线性结构的,也就是说数据序列必须是排过序的才能用二分法。

直接举例(使用二分法的时候采用递归即可):

// 二分法方法一
public static boolean erFen(int a[], int low, int high, int x) {
    boolean f = false;
    if (low <= high) {
      if (x < a[(low + high) / 2]) {
        f = erFen(a, low, (low + high) / 2 - 1, x);
      } else if (x > a[(low + high) / 2]) {
        f = erFen(a, (low + high) / 2 + 1, high, x);
      } else if (x == a[(low + high) / 2]) {
        f = true;
      }
    }
    return f;
}
// 二分法方法二
public static boolean erFen2(int a[], int x) {
    boolean f = false;
    int length = a.length;
    int low = 0;
    int high = length - 1;
    int mid;
    while (low <= high) {
      mid = a[(low + high) / 2];
      if (mid < x)
        low = (low + high) / 2 + 1;
      else if (mid > x)
        high = (low + high) / 2 - 1;
      else if (mid == x) {
        f = true;
        break;
      }
    }
    return f;
}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

 类似资料:
  • 本文向大家介绍简介二分查找算法与相关的Python实现示例,包括了简介二分查找算法与相关的Python实现示例的使用技巧和注意事项,需要的朋友参考一下 二分查找Binary Search的思想: 以有序表表示静态查找表时,查找函数可以用二分查找来实现。 二分查找(Binary Search)的查找过程是:先确定待查记录所在的区间,然后逐步缩小区间直到找到或找不到该记录为止。 1二分查找的时间复杂度

  • 本文向大家介绍C语言快速排序与二分查找算法示例,包括了C语言快速排序与二分查找算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C语言二分排序与查找算法。分享给大家供大家参考,具体如下: 题目:首先产生随机数,再进行快速排序,再进行二分查找。 实现代码: 心得与体会: 二分查找比较容易理解,就是折半查找法,所以要求数据必须是有序数列。不断比较中间值。 快速排序是应用了递归,首先确定一

  • 本文向大家介绍JavaScript折半查找(二分查找)算法原理与实现方法示例,包括了JavaScript折半查找(二分查找)算法原理与实现方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript折半查找(二分查找)算法原理与实现方法。分享给大家供大家参考,具体如下: 一、问题描述: 在一个升序数组中,使用折半查找得到要查询的值的索引位置。如: 注:折半查找必须在有序数组

  • 本文向大家介绍Java 二分查找算法的实现,包括了Java 二分查找算法的实现的使用技巧和注意事项,需要的朋友参考一下 二分查找又称折半查找,它是一种效率较高的查找方法。 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一

  • 基础的二分查找 from typing import List def binary_search(arr: List, target: int, left, right) -> int: """ 二分查找递归实现 :param arr: 原数组 :param target: 查询目标元素 :param left: 左边界 :param righ

  • 本文向大家介绍JS实现常见的查找、排序、去重算法示例,包括了JS实现常见的查找、排序、去重算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现常见的查找、排序、去重算法。分享给大家供大家参考,具体如下: 今天总结了下排序简单的算法 【自定义排序】 先寻找一个最小的数,然后依次那这个数和数组中其他数字比较,如果发现比这个数字小的数就把这两个数调换位置,然后再继续寻找下一个最小的数