/**
* @author xusulong
* input:已排序的序列A(从小到大),数v
* output:v在A中的位置(下标)
*/
public class BinarySearch {
public static int binerySearch(int[] A, int key, int start, int end) {
int index = 0;
int middle = (start + end)/2;
int middleKey = A[middle];
if(key == middleKey) {
index = middle;
} else if(key < middleKey){
index = binerySearch(A, key, start, middle);
} else {
index = binerySearch(A, key, middle + 1, end);
}
return index;
}
public static void main(String[] args) {
int[] A = new int[] {1,2,3,4,5,6,7,8,9,10};
int key = 1;
System.out.println(binerySearch(A, key, 0, 9));
}
}
分享到:
相关推荐
### 二分查找算法 #### 一、二分查找算法简介与原理 二分查找算法是一种高效的搜索技术,主要用于在已排序的数组中查找特定元素。该算法的基本思想是在每一步将查找区间减半,直至找到目标元素或者查找区间为空。 ...
在《算法导论》中,知识点涵盖了基础数据结构(如数组、链表、栈、队列、树和图)、排序与搜索算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序、二分查找、哈希表等)、图算法(如最短路径算法Dijkstra、...
这些算法在日常编程工作中都有广泛的应用,例如,排序算法中的快速排序、归并排序,搜索算法中的二分查找、广度优先搜索等,都是解决实际问题的基础工具。 书中不仅详尽地描述了每种算法的实现步骤,还提供了丰富的...
快速排序、归并排序、堆排序、二分查找、广度优先搜索和深度优先搜索等经典算法的解答,有助于读者深入理解它们的工作原理,从而能够熟练运用在实际编程中。 递归和递推是算法设计中的常见技巧,答案中对这些问题的...
2. 搜索算法:如二分查找、广度优先搜索(BFS)和深度优先搜索(DFS),在数据检索和图形遍历中十分常见,能够高效地定位目标元素或解决路径问题。 3. 图算法:包括最短路径算法(Dijkstra算法、Floyd-Warshall算法)和...
《算法导论第四版》涉及了如红黑树、B树、二叉搜索树、平衡查找树、哈希表、图的搜索算法(深度优先搜索和广度优先搜索)以及最小生成树、最短路径问题等高级主题。这部分内容为读者提供了处理更复杂数据结构和算法...
1. **基础算法**:排序(如冒泡排序、快速排序、归并排序)、搜索(如二分查找、广度优先搜索、深度优先搜索)等基础算法的原理与实现,这些是计算机科学中的基石。 2. **数据结构**:数组、链表、栈、队列、树...
2. 设计和实现算法:书中提供了许多经典的算法,如快速排序、归并排序、二分查找等,读者需要学会如何编写这些算法的代码。 3. 数学应用:部分习题涉及到概率、图论、组合数学等领域的知识,这些是理解和设计某些...
2. **搜索算法**:二分查找、广度优先搜索(BFS)、深度优先搜索(DFS)等,以及在图和树结构中的应用。 3. **图算法**:Dijkstra算法、Floyd-Warshall算法、Prim算法和Kruskal算法等,用于解决最短路径问题和最小...
同时,还深入探讨了排序和搜索算法,如冒泡排序、快速排序、归并排序、二分查找、哈希表等。此外,书中也讲解了图论中的核心算法,如最短路径算法(Dijkstra、Floyd-Warshall、Bellman-Ford)、最小生成树(Prim、...
- **二分查找**:在有序数组中查找指定元素的高效方法。 - **图算法**: - **广度优先搜索(BFS)**:从根节点开始,逐层访问所有节点。 - **深度优先搜索(DFS)**:沿着树的深度遍历树的节点,尽可能深地搜索树的...
搜索算法如二分查找、广度优先搜索和深度优先搜索,则是解决路径寻找和状态空间探索问题的基础;图算法如最短路径算法(Dijkstra算法、Floyd-Warshall算法)和最小生成树(Prim算法、Kruskal算法)在网络优化和社交...
同时,查找算法如线性查找、二分查找也可能是考试内容。 2. **数据结构**:数据结构是算法的载体,包括数组、链表、栈、队列、树、图等。学生需要理解它们的特点、操作和应用,如二叉树的遍历、堆的构建与调整、图...
二分查找适用于有序数组,而图的搜索算法则在解决复杂的网络问题时十分关键。 3. **图算法**:书中详细讲解了图的表示方法、最短路径算法(如Dijkstra算法和Floyd-Warshall算法)以及最小生成树算法(如Prim算法和...
1. 掌握基础算法,如快速排序、归并排序、二分查找等。 2. 学会分析算法的时间和空间复杂度,以便优化程序性能。 3. 了解图算法,如最短路径算法(Dijkstra和Floyd-Warshall)、最小生成树(Prim和Kruskal)等。 4. ...
**标题与描述中的知识点**:二分查找是一种在有序数组中查找特定元素的高效算法,其基本思想是通过将目标值与数组中间元素比较,每次都将查找范围缩小一半,直到找到目标值或确认不存在为止。 **详细解析**: 1. *...
3. **排序与查找算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、二分查找、哈希表等。这些算法在实际应用中极为常见,对数据组织和处理至关重要。 4. **图算法**:如Dijkstra最短路径算法、Floyd-...
本内容选取自《算法导论》一书的习题解答部分,涵盖了选择排序算法和二分查找算法的详解及代码实现。以下是对给定文件内容的详细知识点解读。 选择排序(Selection Sort): 选择排序是一种简单直观的排序算法,它...
搜索算法包括二分查找、深度优先搜索和广度优先搜索,这些算法在数据检索和图形遍历中有着广泛的应用。 图算法是另一个重点,包括Dijkstra最短路径算法、Floyd-Warshall所有对最短路径算法和Prim最小生成树算法,...