本文实例讲述了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实现常见的查找、排序、去重算法。分享给大家供大家参考,具体如下: 今天总结了下排序简单的算法 【自定义排序】 先寻找一个最小的数,然后依次那这个数和数组中其他数字比较,如果发现比这个数字小的数就把这两个数调换位置,然后再继续寻找下一个最小的数