`
totty
  • 浏览: 23354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

数据结构之二分法

阅读更多

最近要啃数据结构了哦~~

这一部分简单,直接上代码罗。

Array1.java 代码
  1. package per;   
  2.   
  3. public class Array1 {   
  4.     public int find(int searchKey, int[] array) {   
  5.         int lowBound = 0;   
  6.         int uppBound = array.length - 1;   
  7.   
  8.         int curIndex;   
  9.         while (true) {   
  10.             curIndex = (lowBound + uppBound) / 2;   
  11.             if (array[curIndex] == searchKey) {   
  12.                 return curIndex;                        //查找到数据,返回下标
  13.             } else if (lowBound > uppBound) {   
  14.                 break;                                  //未查找到数据   
  15.             } else{   
  16.                 if (array[curIndex] < searchKey) {   
  17.                     lowBound = curIndex+1;              //二分法 处于大的一半   
  18.                 } else {   
  19.                     uppBound = curIndex-1;              //二分法 处于小的一半   
  20.                 }   
  21.             }   
  22.         }   
  23.         return -1;                                      //未找到则返回-1
  24.     }   
  25.   
  26. }  

 

TestArray1.java 代码
  1. package per;   
  2.   
  3. import junit.framework.Test;   
  4. import junit.framework.TestCase;   
  5. import junit.framework.TestSuite;   
  6.   
  7. public class TestArray1 extends TestCase {   
  8.     public void testArray1() {   
  9.         int[] array = { 12345678910 };   
  10.         assertTrue(array[new Array1().find(9, array)] == 9);   //能找到数据
  11.         assertTrue(new Array1().find(0, array) == -1);         //不能找到数据
  12.     }   
  13.   
  14.     public static Test suite() {   
  15.         return new TestSuite(TestArray1.class);   
  16.     }   
  17.   
  18.     public static void main(String args[]) {   
  19.         junit.textui.TestRunner.run(suite());   
  20.     }   
  21. }  

 

用的 Junit3.8.1,本期节目结束谢谢观看。

分享到:
评论

相关推荐

    数据结构之二分法查找和散列查找实验

    在IT领域,数据结构是计算机科学中的核心概念,它涉及到如何高效地存储和组织数据,以便于快速访问和处理。二分法查找和散列查找是两种常用的查找算法,它们在不同的场景下有着各自的优势。 首先,我们来详细讨论...

    数据结构快速排序二分法查找

    "数据结构快速排序二分法查找" 快速排序和二分法查找是数据结构中两个非常重要的概念,它们都是解决实际问题的重要工具。在本文中,我们将详细介绍快速排序和二分法查找的原理、实现和应用。 快速排序 快速排序...

    图解数据结构二分法查找法

    ### 图解数据结构:二分法查找法 #### 一、引言 在计算机科学领域,数据结构与算法是核心的基础知识。其中,查找算法作为数据处理中的关键环节,其效率直接影响着系统的性能。二分查找法(Binary Search),作为一...

    C语言版数据结构二分法查找代码

    C语言版数据结构中利用二分查找实现在顺序表的查找。同时包含循序表的插入等操作。

    二分法数据结构

    二分法数据结构是一种在计算机科学中用于高效检索和操作数据的技术。它的核心思想是利用已排序的数据集合,通过不断缩小查找范围来快速定位目标值。这种方法广泛应用于各种数据结构,如二分查找树、平衡二叉搜索树...

    数据结构里的排序问题

    在计算机科学领域,数据结构与算法是至关重要的基础,而排序则是其中不可或缺的一部分。排序算法是用于重新组织数据序列,使其按照特定标准(如升序或降序)排列的算法。这里我们将深入探讨标题和描述中提及的一些...

    SongyangJi#JavaBooks#数据结构-二分法1

    二分法思想:在有序列表中,取中间记录作为比较对象,若给定值与中间记录的关键词相等,则查找成功;若给定值小于中间记录的关键词,则在中间记录的左半区继续查找;若给定

    数据结构实验报告

    数据结构 查找实验报告 1、在顺序表中查找某个数据,若查找成功输出其位置及查找次数,若查找失败输出失败信息。 2、在有n个元素的有序顺序表上进行二分查找。 (1)建立有n个元素的有序顺序表,数据元素为整型。 ...

    二分法排序算法 C语言实现

    二分法搜索算法是一种高效的查找算法,尤其适用于大数据量且数据已排序的情况。在C语言中实现二分查找,需要注意正确处理数组的创建、初始化以及查找过程中的边界条件。本例通过具体的代码实现了这一算法,可供学习...

    C++数据结构.pdf

    在C++中,数组是最基本的数据结构之一,它允许我们定义一个可以存储相同类型数据的变量集合。然而,结构体(struct)则提供了一种用户自定义的数据类型,它能够容纳不同类型的数据项。例如,在图书馆管理系统中,...

    二分法查找.rar_C++_数据结构 课程设计

    利用不同的方法实现数据结构中的二分法查找,

    计算机二分法的算法步骤-五大常用算法之一:分治算法,算法数据结构 五大常用算法

    计算机二分法的算法步骤-五大常用算法之一:分治算法,算法数据结构 五大常用算法 分治算法是一种常用的算法设计方法,它将一个规模为n的问题P分解成k个规模较小的子问题,这些子问题相互独立,并且与原来的问题...

    《数据结构》算法实现及解析 高一凡

    高一凡的数据结构 是由严蔚敏和吴伟民编著的《数据结构 》(c语言版)的学习辅导书,主要内容包括:教材中的每一个数据存储结构的图示;教材中的每一种存储结构的基本操作函数及调用这些基本操作的主程序和程序运行...

    数据结构高分笔记

    对于李春葆老师的《数据结构习题与解析》,也做了类似的处理,并且在这本书中穿插讲解了一些考试大纲中没有明文规定,但是很多算法题目中大量用到的算法设计思想,来帮助大家提高解算法设计题的能力,比如搜索(打印...

    数据结构 折半插入排序

    ### 数据结构之折半插入排序 #### 知识点概览 1. **折半插入排序的基本概念** 2. **折半插入排序算法原理** 3. **折半插入排序的时间复杂度分析** 4. **折半插入排序的空间复杂度分析** 5. **折半插入排序与普通...

    数据结构-3期(KC002) 二分法查找算法.docx

    本篇文档"数据结构-3期(KC002) 二分法查找算法.docx"详细介绍了如何实现二分法查找算法。下面我们将深入探讨这一算法。 二分法查找的基本思想是将数组分成两半,每次比较中间元素与目标值,然后根据比较结果缩小...

    LabVIEW 二分法 简单实现

    简单的做了一个二分法的算法,小于某个特定值后停止运行。

    java数据结构测试题及答案解析.doc

    Java 数据结构测试题涉及到多个Java编程基础和设计概念,包括数据结构、软件设计工具、多分支语句(switch语句)、继承与多态、自定义表格模型以及并发控制。以下是这些知识点的详细解释: 1. **二分法查找**: - ...

    c++数据结构习题解答

    《c++数据结构习题解答》是一份针对C++编程语言的数据结构教学辅助资料,主要聚焦于《数据结构(C++版)(第3版)》的例题和习题解析。这份资料深入探讨了数据结构的核心概念,通过实例解析帮助学习者掌握C++实现...

Global site tag (gtag.js) - Google Analytics