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

2025-05-29 0 92

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

前言:

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

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

1. 快速查找

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

例子:

?

1

2

3

4

5

6

7

8

9

10

11

12
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. 二分法(折半)查找:

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34
// 二分法方法一

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程序设计有所帮助。

原文链接:http://www.cnblogs.com/liangstudyhome/p/4571287.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java实现的两种常见简单查找算法示例【快速查找与二分查找】 https://www.kuaiidc.com/115078.html

相关文章

发表评论
暂无评论