首页 > 开发 > Java > 正文

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

2024-07-13 10:11:58
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表