說明
如果搜尋的數列已經有排序,應該儘量利用它們已排序的特性,以減少搜尋比對的次數,這是搜尋的基本原則,二分搜尋法是這個基本原則的代表。
解法
在二分搜尋法中,從數列的中間開始搜尋,如果這個數小於我們所搜尋的數,由於數列已排序,則該數左邊的數一定都小於要搜尋的對象,所以無需浪費時間在左邊的數;如果搜尋的數大於所搜尋的對象,則右邊的數無需再搜尋,直接搜尋左邊的數。
所以在二分搜尋法中,將數列不斷的分為兩個部份,每次從分割的部份中取中間數比對,例如要搜尋92於以下的數列,首先中間數索引為(0+9)/2 = 4(索引由0開始):
[3 24 57 57 67 68 83 90 92 95]
由於67小於92,所以轉搜尋右邊的數列:
3 24 57 57 67 [68 83 90 92 95]
由於90小於92,再搜尋右邊的數列,這次就找到所要的數了:
3 24 57 57 67 68 83 90 [92 95]
public class Search {
public static int binary(int[] number, int des) {
int low = 0;
int upper = number.length - 1;
while(low <= upper) {
int mid = (low+upper) / 2;
if(number[mid] < des)
low = mid+1;
else if(number[mid] > des)
upper = mid - 1;
else
return mid;
}
return -1;
}
public static void main(String[] args) {
int[] number = {1, 2, 3, 4, 6, 7, 8};
int find = Search.binary(number, 2);
System.out.println(find >= 0 ? "找到數值於索引" + find : "找不到數值");
}
}
分享到:
相关推荐
### C经典算法之二分搜寻法(搜寻原则的代表) #### 一、二分搜寻法原理 二分搜寻法(Binary Search),又称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。它的工作原理是将数组中间位置的值与目标值...
这种方法类似于二分搜索,但每次可以排除掉三分之一的数据,而不是一半,从而在某些情况下提供更好的性能。 #### 分析与应用: **1. 原理详解:** - **初始化:** 设定搜索范围为整个数组,即左右边界为数组的...
� 排序 得分排行 选择、插入、气泡排序 Shell 排序法 - 改良的...二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 � 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵......
二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 堆叠 - 使用阵列实作 堆叠 - 使用链结实作(C 语言动态记忆体宣告) 堆叠 - 使用 Java 作物件封装 佇列(队列) - 使用阵列实作 佇列(队列) - 使用链结实...
河内塔 ...二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 对C语言的学习非常有用。
老掉牙 河内塔 巴式数列 巴斯卡三角形 ...二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵
老掉牙 河内塔 费式数列 ...二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵
• 二分搜寻法(搜寻原则的代表) • 插补搜寻法 • 费氏搜寻法 矩阵 • 稀疏矩阵 • 多维矩阵转一维矩阵 • 上三角、下三角、对称矩阵 • 奇数魔方阵 • 4N 魔方阵 • 2(2N+1) 魔方阵 堆栈、队列 • ...
二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 - 使用阵列实作 堆叠 - ...
二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 - 使用阵列实作 堆叠 - ...
二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 - 使用阵列实作 堆叠 - ...
二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 - 使用阵列实作 堆叠 - ...
点云法向量是3D空间中描述表面方向的关键元素,它表示了点云中每个点表面局部的正向。在计算机视觉、机器人导航、3D建模等领域,理解和计算点云的法向量至关重要。k-近邻点估计法(k-Nearest Neighbors, k-NN)是一...
对于大量数据,可能需要优化查找算法,如Trie树或二分查找,以提高性能。 六、前后端通信 为了获取搜索建议,前端需要与后端进行通信。这可能涉及JSON格式的数据交换,以及HTTP协议的理解。在发送请求时,要确保...
K-近邻法是一种在数据挖掘领域内广泛应用的文本分类算法,它通过分析文档特征向量在向量空间模型中的位置来执行分类任务。该算法在处理多类文本数据时表现出色,原因在于它算法结构简单,易于实现,并且在很多情况下...
【二级分类demo】是一个模拟京东、天猫等电商平台产品分类界面的示例项目,旨在帮助开发者快速构建类似功能。这个demo的核心在于实现一个清晰、易用的二级分类展示系统,允许用户方便地浏览和筛选不同类别下的商品。...