`
ybhuxiao
  • 浏览: 192816 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

笔试的时候一个折半查找写错了,这样写应该对了吧

    博客分类:
  • java
阅读更多
	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了,拿起笔来只能想到思路,写出的程序确实是不敢恭维,以后注意

来北京快一周了,找工作中,加油




2
1
分享到:
评论

相关推荐

    折半查找的递归算法

    本文将详细介绍如何使用递归方法实现折半查找,并给出一个具体的C语言程序示例。 #### 二、折半查找的基本原理 折半查找的基本思想是每次比较中间位置的元素与目标值。如果中间元素正好是要查找的目标值,则查找...

    折半查找(二分查找)折半查找(二分查找)折半查找(二分查找)

    折半查找(二分查找)是一种高效的查找算法,对于顺序存储的有序表,可以快速地找到指定的关键字记录。该算法的基本思想是,每次比较给定值 K 与中间位置记录的关键字值,并根据比较结果确定下一步的查找范围,直到...

    折半查找算法在顺序表中插入一个元素讲解.pdf

    折半查找算法在顺序表中插入一个元素讲解 折半查找算法是一种常用的查找算法,它可以在已经排好序的顺序表中快速地找到某个元素。下面我们来详细讲解折半查找算法在顺序表中插入一个元素的过程。 折半查找算法的...

    顺序查找+折半查找

    这里我们主要探讨两个经典的查找算法:顺序查找和折半查找,它们都是在有序或无序数据集合中寻找特定元素的方法。 **顺序查找**,也称为线性查找,是一种基本的查找算法,适用于任何类型的数据结构,尤其是链表和...

    C语言实现顺序表的顺序查找和折半查找

    折半查找是一种高效的查找方法,它可以快速地在一个有序数组中找到目标元素。下面是折半查找的C语言实现代码: ```c int BinSearch1(int r[], int n, int k) { // 非递归 int low = 1, high = n; // 设置查找区间 ...

    顺序查找和折半查找在10个元素中查找20

    顺序查找的代码实现通常是一个简单的循环,逐个比较元素,而折半查找则需要更复杂的逻辑,包括计算中间索引、判断目标值与中间元素的关系并相应地调整查找范围。在实际编程中,我们还会考虑到边界条件和错误处理,...

    数据结构实验 折半查找的有关操作

    - `BinSrch` 函数是折半查找的实现,它接收一个`RecordList`和一个`KeyType`作为参数,返回找到的元素在表中的位置,如果没有找到则返回0。 - `main` 函数是程序的入口,它先调用`createlist`创建列表,然后让用户...

    java程序写的 折半查找

    java写的折半查找法,使用间的循环语句,但是逻辑可能不够简洁,希望互相学习!

    顺序查找和折半查找

    虽然效率不高,但对于小规模数据或无序数据集,顺序查找仍然是一个可行的解决方案。 **折半查找(Binary Search)** 折半查找,又称二分查找,是一种在有序数组中高效查找的方法。它利用了数组的索引特性,每次将待...

    数据结构--折半查找

    数据结构习题---折半查找代码 void BinInsert(int A[],int &n,int item) ...j--) /* 相关元素依次后移一个位置*/ A[j+1]=A[j]; A[low]=item; /* 将被插入元素item插入合适位置*/ n++; /* 表的长度加1 */ }

    折半查找的简单C语言算法

    使用折半查找,输入一个整数,查找是否在数组中,如在给出下标,否则-1

    C#Windows窗体模拟折半查找程序

    在这个特定的项目中,我们关注的是实现一个模拟折半查找算法的Windows窗体应用。折半查找,也称为二分查找,是一种在有序数组中寻找特定元素的有效方法,它的效率显著高于线性查找。 首先,我们需要了解折半查找的...

    汇编课程设计 实现折半查找

    对于这个项目,我们需要一个能够对一组数据进行升序或降序排列的排序算法。考虑到汇编语言的特性,可以选择简单且效率较高的排序算法,例如冒泡排序或插入排序。 然后,我们要实现用户界面的友好性。虽然汇编语言...

    折半查找 c语言函数

    1. **定义函数**:首先,我们需要定义一个函数来执行折半查找。这个函数通常接受两个参数,一个是待查找的有序数组,另一个是目标值。 2. **设置边界**:在函数内部,我们初始化两个指针,一个指向数组的起始位置...

    折半查找算法

    折半查找适用于对已排序的数组或列表进行高效查找。常见的应用场景包括但不限于: - 在数据库索引中快速定位记录。 - 在大量数据集中快速检索特定信息。 - 在计算机科学的其他领域,如算法优化等。 综上所述,折半...

    折半查找算法的改进和程序实现

    折半查找算法是一种在有序数组中寻找特定元素的搜索算法,其基本思想是将数组分为两半,通过比较中间元素和目标值来缩小搜索范围。然而,传统的折半查找在某些情况下并不一定是效率最高的方法。通过对查找算法的改进...

    二叉排序树和折半查找

    这个过程递归进行,直到找到一个空的位置插入新节点。 2. **二叉排序树的查找操作**: 查找某个值时,同样从根节点开始,如果目标值等于当前节点的值,则查找成功;如果目标值小于当前节点的值,那么在左子树中...

    数据结构实验——折半查找

    折半查找是数据结构中,查找的其中一种。此资源不但包括折半查找的算法,还包括帮助其运行的其他代码,可直接运行以实现折半查找。注:输入数据时,要将数据从大到小依次输入,方可实现折半查找。

    数据结构折半查找代码

    数据结构折半查找,用于C语言版的数据结构。

    java 快速排序 折半查找的界面实现 (递归与分治法)

    结合界面实现,我们可以创建一个用户友好的图形界面,允许用户输入数据并展示快速排序和折半查找的结果。这通常需要使用Java的Swing或JavaFX库来构建。用户可以输入一组数字,点击“快速排序”按钮进行排序,然后...

Global site tag (gtag.js) - Google Analytics