文档章节

小蚂蚁学习数据结构(31)——折半查找法

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2016/02/06 21:03
字数 252
阅读 107
收藏 6
点赞 1
评论 0

    终于看到了查找了,真是不想看了,我都快吐了,坚持一下,查找和排序看完就结束了,加油。

    折半查找法

# include <stdio.h>

int bin_search( int * str, int n, int key )
{
	int low, high, mid;
	
	low = 0;
	high = n - 1;
	
	while( low <= high )
	{
		mid = ( low + high )/2;
		if( str[mid] == key )
		{
			return mid;
		}
		if( str[mid] < key )
		{
			low = mid + 1;
		}
		if( str[mid] > key )
		{
			high = mid - 1;
		}
	}
	
	return -1;
}

int main( void )
{
	int num[11] = {1, 2, 4, 5, 32, 57, 58, 62, 72, 86, 90};
	int n, addr;
	
	printf( "请输入你要查找的关键字:\n" );
	scanf( "%d", &n );
	
	addr = bin_search( num, 11, n );
	
	if( -1 != addr )
	{
		printf( "该关键字的位置是:%d\n", addr );
	}	
	else
	{
		printf( "没有找到关键字\n", addr );
	
	}
	
	return 0;
}
/*
	在VC++6.0中输出的结果是:
	===================================
	请输入你要查找的关键字:
	86
	该关键字的位置是:9
	
	请输入你要查找的关键字:
	53
	没有找到关键字
	===================================
	结论:
		关键字需要是有序排列。
*/


    学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 137
博文 161
码字总数 100864
作品 0
郑州
程序员
查找——折半查找

一、折半查找 折半查找(Binary Search)又称为二分查找。注意 折半查找方法要求查找表的数据是线性结构保存,并且还要求查找表中的数据是按关键字由小到大有序排列。 折半查找的具体过程 假设有...

翼动动空 ⋅ 2016/06/28 ⋅ 0

算法-数据结构

时间复杂度 O(log n) 意味着什么? 写给小白的时间复杂度指南 查找算法的 Java 实现 查找算法的 Java 实现 两个有序数组合并成一个有序数组 用拉链法和线性探测法解决哈希冲突 用拉链法和线性...

掘金官方 ⋅ 2017/12/14 ⋅ 0

数据结构课程主页-2016级

  新学期,再度起程!   翻转的数据结构课程再度迎来新的一批同学。   前两年,资源建设基本完备,课堂方案逐渐完善,同学们对新型的学习方式设计给予了肯定(参见2014级问卷调查和201...

sxhelijian ⋅ 2017/08/30 ⋅ 0

Java实现的二分查找算法

二分查找又称折半查找,它是一种效率较高的查找方法。 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找...

孟飞阳 ⋅ 2016/06/14 ⋅ 0

各种基本算法实现小结(六)—— 查找算法

各种基本算法实现小结(六)—— 查找算法 (均已测试通过) =================================================================== 1、简单查找 在一组无序数列中,查找特定某个数值,并返...

长平狐 ⋅ 2013/01/06 ⋅ 0

时间复杂度和空房间复杂度

一、时间复杂度:(注意:不是指程序运行时间) 1定义:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/...

qq_38646470 ⋅ 2017/12/09 ⋅ 0

Innodb-------Binary Search算法

1. 背景 * Binary Search(二分查找法)也称为折半查找法,用来查找一组有序记录数组中某一项记录。 * 其基本思想是:将记录按有序化(递增或递减)排列 * 查找过程中用跳跃式方式查找。 2. 优点...

asd1123509133 ⋅ 2017/11/01 ⋅ 0

Oracle的索引学习

索引是为了提高数据库的查询性能,而引入的概念。索引的概念,就是根据表记录中的一个或多个列,通过一定的运算规则,将这些列的特征表示为一个数值或字符串。数据库系统将这些数值或字符串加...

搜呗 ⋅ 2010/07/21 ⋅ 0

PHP算法:折半查找法(又称二分查找法)

二分查找又称折半查找 ,它是一种效率较高的查找方法。 【二分查找要求】: 1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 【优缺点】折半查找法的优点是比较次数少,查找速度快,平...

岭南六少 ⋅ 2011/07/11 ⋅ 0

Oracle索引的学习……

索引是对数据库表中一个或多个列的值进行排序的结构。 索引是为了提高数据库的查询性能,而引入的概念。索引的概念,就是根据表记录中的一个或多个列,通过一定的运算规则,将这些列的特征表...

搜呗 ⋅ 2010/07/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 8分钟前 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 24分钟前 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 8

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部