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

二分查找--精简代码-数据结构

阅读更多

 

这个方法不知道什么时候在哪里来了!反正觉得写得好好的。收藏在里好久了,现在从里倒出来归还网络!

  1. //二分查找 
  2. //right=n-1 => while(left <= right) => right=middle-1;   
  3. //right=n   => while(left <  right) => right=middle;   
  4. //middle的计算不能写在while循环外,否则无法得到更新。   
  5.    
  6. int binary_search(int array[],int n,int value)   
  7. {   
  8.     int left=0;   
  9.     int right=n-1;   
  10.     //如果这里是int right = n 的话,那么下面有两处地方需要修改,以保证一一对应:   
  11.     //1、下面循环的条件则是while(left < right)   
  12.     //2、循环内当array[middle]>value 的时候,right = mid   
  13.    
  14.     while (left<=right)          //循环条件,适时而变   
  15.     {   
  16.         int middle=left + ((right-left)>>1);  //防止溢出,移位也更高效。同时,每次循环都需要更新。   
  17.    
  18.         if (array[middle]>value)   
  19.         {   
  20.             right =middle-1;   //right赋值,适时而变   
  21.         }    
  22.         else if(array[middle]<value)   
  23.         {   
  24.             left=middle+1;   
  25.         }   
  26.         else   
  27.             return middle;     
  28.         //可能会有读者认为刚开始时就要判断相等,但毕竟数组中不相等的情况更多   
  29.         //如果每次循环都判断一下是否相等,将耗费时间   
  30.     }   
  31.     return -1;   

包包

 

包包

 

 

包包

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    《数据结构》算法实现代码编写工具精简工具(第二版C语言版).rar

    4. **排序与查找算法**:冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等排序算法,以及哈希表、二分查找等查找算法。排序和查找是编程中最常用到的技术,直接影响程序的效率。 5. **动态规划和递归**...

    数据结构导论串讲(精简).rar

    10. **查找算法**:二分查找、深度优先搜索(DFS)、广度优先搜索(BFS)等,用于在数据结构中查找特定元素。 这些基本数据结构和算法是理解和解决问题的基础,掌握它们对于编写高效的代码至关重要。通过学习“数据...

    自考资料:数据结构导论串讲(精简)

    查找是寻找特定数据项的操作,如顺序查找、二分查找和哈希查找等。 七、文件结构 文件结构是数据在外部存储器上的组织方式,包括顺序文件、索引文件、散列文件等。理解这些结构对于高效地读写大容量数据至关重要。 ...

    数据结构与算法以及个人博客程序代码

    在这个“数据结构与算法以及个人博客程序代码”压缩包中,你将找到一套结合理论与实践的学习资源,它能帮助你深入理解这两方面的重要概念。 首先,数据结构是关于如何有效地组织和存储数据的科学。常见的数据结构...

    数据结构 清华大学出版社

    9. **排序与查找**:排序算法(如冒泡排序、快速排序、归并排序等)用于对数据进行排列,而查找算法(如顺序查找、二分查找、哈希查找等)则用于在数据中寻找特定元素。 10. **递归与分治**:递归是一种解决问题的...

    石油大学数据结构课件22

    - **查找算法**:包括顺序查找、二分查找等,以及对这些算法效率的分析。 - **动态规划**:一种解决优化问题的方法,适用于可以分解为子问题的问题。 ### 结语 总的来说,张柳村老师的“石油大学数据结构课件22”...

    C++数据结构

    查找算法如顺序查找、二分查找、哈希表查找等,提供高效的数据检索手段。 此外,C++标准模板库(STL)中的容器,如vector、list、deque、set、map等,都是预定义的数据结构,它们提供了方便的操作接口,简化了数据...

    2019年杭州电子科技大学数据结构与组成原理考研真题

    在考研真题中,可能会涉及排序算法(如冒泡排序、快速排序、归并排序)、查找算法(如二分查找、哈希查找)的分析和实现,以及复杂度分析,包括时间复杂度和空间复杂度的计算。此外,动态规划、贪心算法和回溯法等...

    北京科技大学2007年数据结构及组成原理考研试题.rar

    5. **排序与查找**:快速排序、归并排序、冒泡排序、堆排序等排序算法,以及二分查找、哈希查找等查找算法,是数据处理的核心。 **计算机组成原理** 计算机组成原理主要研究计算机硬件系统的结构和工作原理,涉及...

    考研408数据结构算法背诵

    例如,二分查找适用于有序数组,而哈希查找则在需要频繁插入和查找的场景下表现出色。考生们需要在掌握每种算法的基础上,了解其适用场景和优缺点。 对于算法部分,快速排序(快排)一直是考试中的高频考点。这份...

    java学习系统(经典例题,完数,九九乘法表,百鸡问题等详细解答,精简代码)

    在编程学习中,经典例题通常包括排序算法(如冒泡排序、快速排序、归并排序)、查找算法(如线性查找、二分查找)以及数据结构的应用(如栈、队列、链表、树)。通过这些例题,学习者可以深入理解基础算法的工作原理...

    计算机等级考试(二级)基础知识精简版

    常见的查找方法包括顺序查找、二分查找、哈希查找等。这些技术在数据库、排序和搜索算法中广泛应用。 这些基础知识是计算机科学的基石,对编程和系统设计有着深远的影响。理解并能熟练应用这些概念,对于参加计算机...

    如何写出高效优美的单片机C语言代码

    2. **算法与数据结构的选择**:使用高效的算法(如二分查找替代顺序查找,快速排序替代冒泡排序)和合适的数据结构(如链表在需要频繁插入和删除操作的场景下优于数组),可以显著提升程序性能。 3. **数据类型的...

    如何优化C语言代码

    - **二分查找**适用于已排序的数据集,查找效率较高,时间复杂度为O(log n)。 - **冒泡排序**、**插入排序**适用于数据量较小的情况。 - **快速排序**、**合并排序**适用于处理大规模数据集,这些算法的时间...

    酒店网站 asp+access,代码优化

    - **优化循环结构**:使用更高效的算法,减少循环次数,如二分查找代替线性搜索。 - **缓存计算结果**:对于耗时计算,可以存储结果,避免重复计算。 - **避免数据库频繁交互**:批量处理数据,减少数据库连接和...

    易语言程序免安装版下载

     静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...

    2018年自命题科目试题数据结构与组成原理.zip

    4. 排序和查找算法:快速排序、归并排序、堆排序、冒泡排序、插入排序等,以及二分查找、哈希查找等高效查找方法。 5. 队列和栈的应用:如在操作系统中的进程调度、页面替换算法(LRU)以及表达式求值等问题。 6. ...

    09年计算机大纲 计算机考研

    ### 数据结构知识点详解 #### 一、数据结构基础概念 - **数据结构**: 是指一组相关的数据元素的集合,以及该集合中数据元素之间的关系。它主要包括数据的逻辑结构、存储结构以及对这些数据进行的基本操作。 #### ...

    基础算法题目精简集合

    - 利用二分查找来提高搜索效率。 - 注意输入数据的有序性,以便快速定位。 ##### 题目2:幂运算求模 - **题目描述**:输入三个整数`a`、`n`、`k`(1,n且1),求`a^n mod k`。 - **解题思路**: - 使用快速幂运算来...

Global site tag (gtag.js) - Google Analytics