`
小明哥
  • 浏览: 89140 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C语言笔记11 二分查找字符

    博客分类:
  • C
阅读更多

二分查找字符

/* binsearch函数:在v[0<=v[1]<=v[2]<=...<=v[n-1]中查找x] */
int binsearch(int x, int v[], int n)
{
	int low, high, mid;

	low = 0;
	high = n - 1;
	while(low <= high){
		mid = (low + high) / 2;
		if(x < v[mid])
			high = mid - 1;
		else if(x > v[mid])
			low = mid + 1;
		else	/* 找到了匹配的值 */
			return mid;
	}
	return -1;	/* 没有匹配的值 */
}

 

另一个版本

/* binsearch函数:在v[0<=v[1]<=v[2]<=...<=v[n-1]中查找x] */
int binsearch(int x, int v[], int n)
{
	int low, high, mid;

	low = 0;
	high = n - 1;
	mid = (low + high) / 2;
	while(low <= high && x != v[mid]){
		if(x < v[mid])
			high = mid - 1;
		else 
			low = mid + 1;		
		mid = (low + high) / 2;
	}
	if(x == v[mid])	
		return mid;		/* 找到了匹配的值 */
	else
		return -1;		/* 没有匹配的值 */
}

 这两种方案的执行时间几乎相同,但是第二种失掉了代码的可读性,原有代码更容易阅读和理解。

 

0
2
分享到:
评论

相关推荐

    C语言笔记,一个很牛的人总结的,挺全的

    C语言笔记总结 以下是对C语言笔记的总结,该笔记记录了一个牛人学习C语言知识点,挺全的。 一、C语言基础 * C语言源文件的扩展名是`.c` * C++源文件的扩展名是`.cpp` * 头文件的扩展名是`.h` * 库文件的扩展名是`...

    linux c语言 笔记

    ### Linux C语言笔记知识点 #### 一、GCC介绍与GDB工具 - **GCC (GNU Compiler Collection)**: 是一个用于编译C/C++等语言的标准工具链。它提供了丰富的功能来帮助开发者进行高效的代码编译。 - **编译命令**: `...

    c语言 实用基础 算法 笔记 指针

    常见的算法包括排序(冒泡、选择、插入、快速、归并等)、查找(线性、二分等)、图和树算法、动态规划等。学习者应通过编写代码来实践这些算法,提高编程能力。 总结,这份笔记集合了C语言的基础语法、指针操作和...

    C语言个人学习笔记汇总

    同时,结合算法学习,比如排序(冒泡排序、选择排序、插入排序、快速排序、归并排序等)、查找(线性查找、二分查找等)会进一步提高编程能力。 此外,文件操作也是C语言中的一个重要部分。学习如何打开、读取、...

    C语言常见的演算法笔记

    - **二分查找**:适用于已排序的数组,每次查找都将查找范围减半,时间复杂度为O(log n)。 - **哈希查找**:通过哈希函数将元素映射到表中特定位置,查找速度非常快,理想情况下达到O(1)。 3. **递归与分治** - ...

    C 语言结构体笔记

    根据给定的文件信息,以下是对“C 语言结构体笔记”中提到的关键知识点的详细解释: ### C语言中的结构体(struct) 结构体是C语言中一种复合数据类型,允许我们将不同类型的数据组合在一起,形成一个整体。这在处理...

    数据结构(C语言描述)学习笔记.zip

    查找算法包括顺序查找、二分查找、哈希查找等,其中二分查找适用于有序数组,而哈希查找在哈希表中提供近乎常数时间的查找速度。 九、字符串处理 字符串是字符的序列,C语言中常用字符数组来表示字符串。字符串处理...

    数据结构基础word版本,c语言描述

    9. 查找:查找是数据结构中寻找特定元素的过程,包括顺序查找、二分查找、哈希表查找等方法。理解不同查找算法的时间复杂度对优化程序至关重要。 10. 排序:排序是将一组数据按特定顺序排列的过程。常见的排序算法...

    C语言经典算法100例.pdf

    - 二分查找:适用于有序列表,通过比较中间元素来确定目标值可能存在的范围,不断缩小搜索范围直至找到目标值或确认不存在。 3. **链表操作**: - 链表的插入、删除和反转等操作也是C语言中常见的算法问题。例如...

    哈工大 计算机学部 考研复试 C语言 历年真题和笔记.zip

    - 查找算法:掌握线性查找、二分查找等基本查找方法。 - 树与图:了解二叉树、平衡树、图的表示和常见操作。 8. **编译与链接** - 编译过程:理解预处理、编译、汇编、链接的过程。 - 静态与动态链接:了解静态...

    计算机基础知识笔记二级c

    3. 算法基础:学习排序算法(如冒泡排序、快速排序)、查找算法(如线性查找、二分查找)等,为后续的算法学习打下基础。 总之,计算机基础知识笔记二级C全面涵盖了从计算机原理到C语言编程的基础知识,通过学习,...

    谭浩强C语言全书WORD版

    《谭浩强C语言全书》是一本深受中国程序员喜爱的C语言教程,它为初学者提供了全面且易懂的C语言学习资源。本书详细介绍了C语言的基础概念、语法结构以及编程技巧,是学习C语言的必备参考资料。下面将根据标题、描述...

    C语言补充知识点归纳.zip

    分治策略是递归的一种应用,将大问题分解为小问题来解决,如快速排序、二分查找。 7. **错误处理与调试**: 使用`assert`宏进行断言检查,帮助定位程序错误。学会利用`printf`进行调试输出,理解并运用`gdb`等调试...

    算法笔记·上机训练实战指南

    - **查找算法**:如线性查找、二分查找、哈希查找,以及各种数据结构中的查找策略。 - **图论算法**:深度优先搜索(DFS)、广度优先搜索(BFS)、最短路径算法(Dijkstra、Floyd等)。 - **动态规划**:讲解基础...

    《C和指针》读书笔记.pdf

    - 字符串在C语言中通常以NUL字符(`\0`)结尾,这标志着字符串的结束。 - NUL字符与NULL指针不同,后者用于表示空指针。 5. **函数参数传递数组长度**: - 当传递数组给函数时,通常不需要显式地提供数组长度。...

    常见程式演算笔记.rar

    1. **排序与搜索**:包括快速排序、归并排序、二分查找等经典算法,这些都是程式设计的基础,对于处理大量数据尤其重要。 2. **图论与网络流**:如最短路径问题(Dijkstra算法、Floyd-Warshall算法)、最小生成树...

    [学习笔记]C++程序设计教程第二版[钱能].doc

    根据提供的文件信息,我们可以推断出这是一份关于C++程序设计的学习资料,具体来说是《C++程序设计教程第二版》这本书的学习笔记。虽然给定的部分内容仅包含了一些图片占位符和数字(可能是指页码),但我们可以基于...

    cpp-算法学习笔记

    2. **查找算法**:如线性查找、二分查找、哈希查找等,它们在数据检索和定位上发挥着关键作用。 3. **图算法**:如深度优先搜索(DFS)、广度优先搜索(BFS)、Dijkstra算法、Floyd-Warshall算法,这些在解决网络...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

Global site tag (gtag.js) - Google Analytics