public int find(int[] abc, int t) {
int begin = 0; // 初始化查找区域
int end = abc.length - 1; // 初始化查找区域
while (begin <= end) {
int curr = (begin + end) / 2;
if (abc[curr] == t) {
return curr; //查找成功返回当前位置
} else if (abc[curr] < t) {
begin = curr + 1;
} else if (t < abc[curr]) {
end = curr - 1;
}
}
return -1; // 返回查找失败的标志
}
加一个递归的
public int findRecursion(int[] abc, int t) {
return findRecursion(abc, t, 0, abc.length - 1);
}
private int findRecursion(int[] abc, int t, int begin, int end) {
if (begin > end) {
return -1;
}
int curr = (begin + end) / 2;
if (abc[curr] == t) {
return curr;
} else if (abc[curr] < t) {
return findRecursion(abc, t, curr + 1, end);
} else {
return findRecursion(abc, t, begin, curr - 1);
}
}
笔试的时候写的很错,面试中被拿出来说了一说,给我找出来不少的错误,才发现自己真的太粗心了,居然直接用小于号直接比较两个String的大小,而且连折半的思路也搞错了,数据结构本来学的不好,更要复习一下了。
而且我太依赖ide了,拿起笔来只能想到思路,写出的程序确实是不敢恭维,以后注意
来北京快一周了,找工作中,加油
分享到:
相关推荐
本文将详细介绍如何使用递归方法实现折半查找,并给出一个具体的C语言程序示例。 #### 二、折半查找的基本原理 折半查找的基本思想是每次比较中间位置的元素与目标值。如果中间元素正好是要查找的目标值,则查找...
折半查找算法在顺序表中插入一个元素讲解 折半查找算法是一种常用的查找算法,它可以在已经排好序的顺序表中快速地找到某个元素。下面我们来详细讲解折半查找算法在顺序表中插入一个元素的过程。 折半查找算法的...
这里我们主要探讨两个经典的查找算法:顺序查找和折半查找,它们都是在有序或无序数据集合中寻找特定元素的方法。 **顺序查找**,也称为线性查找,是一种基本的查找算法,适用于任何类型的数据结构,尤其是链表和...
折半查找是一种高效的查找方法,它可以快速地在一个有序数组中找到目标元素。下面是折半查找的C语言实现代码: ```c int BinSearch1(int r[], int n, int k) { // 非递归 int low = 1, high = n; // 设置查找区间 ...
顺序查找的代码实现通常是一个简单的循环,逐个比较元素,而折半查找则需要更复杂的逻辑,包括计算中间索引、判断目标值与中间元素的关系并相应地调整查找范围。在实际编程中,我们还会考虑到边界条件和错误处理,...
- `BinSrch` 函数是折半查找的实现,它接收一个`RecordList`和一个`KeyType`作为参数,返回找到的元素在表中的位置,如果没有找到则返回0。 - `main` 函数是程序的入口,它先调用`createlist`创建列表,然后让用户...
java写的折半查找法,使用间的循环语句,但是逻辑可能不够简洁,希望互相学习!
虽然效率不高,但对于小规模数据或无序数据集,顺序查找仍然是一个可行的解决方案。 **折半查找(Binary Search)** 折半查找,又称二分查找,是一种在有序数组中高效查找的方法。它利用了数组的索引特性,每次将待...
数据结构习题---折半查找代码 void BinInsert(int A[],int &n,int item) ...j--) /* 相关元素依次后移一个位置*/ A[j+1]=A[j]; A[low]=item; /* 将被插入元素item插入合适位置*/ n++; /* 表的长度加1 */ }
使用折半查找,输入一个整数,查找是否在数组中,如在给出下标,否则-1
在这个特定的项目中,我们关注的是实现一个模拟折半查找算法的Windows窗体应用。折半查找,也称为二分查找,是一种在有序数组中寻找特定元素的有效方法,它的效率显著高于线性查找。 首先,我们需要了解折半查找的...
对于这个项目,我们需要一个能够对一组数据进行升序或降序排列的排序算法。考虑到汇编语言的特性,可以选择简单且效率较高的排序算法,例如冒泡排序或插入排序。 然后,我们要实现用户界面的友好性。虽然汇编语言...
1. **定义函数**:首先,我们需要定义一个函数来执行折半查找。这个函数通常接受两个参数,一个是待查找的有序数组,另一个是目标值。 2. **设置边界**:在函数内部,我们初始化两个指针,一个指向数组的起始位置...
折半查找适用于对已排序的数组或列表进行高效查找。常见的应用场景包括但不限于: - 在数据库索引中快速定位记录。 - 在大量数据集中快速检索特定信息。 - 在计算机科学的其他领域,如算法优化等。 综上所述,折半...
这个过程递归进行,直到找到一个空的位置插入新节点。 2. **二叉排序树的查找操作**: 查找某个值时,同样从根节点开始,如果目标值等于当前节点的值,则查找成功;如果目标值小于当前节点的值,那么在左子树中...
折半查找是数据结构中,查找的其中一种。此资源不但包括折半查找的算法,还包括帮助其运行的其他代码,可直接运行以实现折半查找。注:输入数据时,要将数据从大到小依次输入,方可实现折半查找。
在查找过程中,首先确定目标值位于哪一个子数组内,然后在该子数组内继续执行三段查找,直到找到目标值或子数组长度缩减到一个单位时,转为顺序查找。 为了实现这一改进,研究者们通过建立数学模型来分析平均查找...
数据结构折半查找,用于C语言版的数据结构。
结合界面实现,我们可以创建一个用户友好的图形界面,允许用户输入数据并展示快速排序和折半查找的结果。这通常需要使用Java的Swing或JavaFX库来构建。用户可以输入一组数字,点击“快速排序”按钮进行排序,然后...
在给定的代码片段中,作者实现了一个通用的折半查找函数`Binary_Search`,并用一个整型数组`a`作为示例进行了测试。 ```cpp #include using namespace std; // 使用模板实现,以支持不同数据类型 template int ...