文档章节

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

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

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

    折半查找法

# 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



© 著作权归作者所有

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

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

翼动动空
2016/06/28
1K
0
递归 —— 二分查找法 —— 归并排序

PS:什么是递归、二分查找、归并排序。 递归排序大家都不陌生,递归简单的说就是自己在没有达到目的的同时在此调用本身,把一个大问题层层转化为和原问题相似的小问题解决,递归需要有边界条...

CMusketeer
07/29
0
0
算法-数据结构

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

掘金官方
2017/12/14
0
0
Java实现的二分查找算法

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

孟飞阳
2016/06/14
408
0
Java实现的二分查幸运飞艇平台出租找算法[递归]

二分查找又幸运飞艇平台出租 haozbbs.comQ1446595067 称折半查找,它是一种效率较高的查找方法。 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先...

oskksk
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django支持中文

django是支持中文界面, 先找到Django语言包安装目录,我的在: /usr/local/python3/lib/python3.6/site-packages/django/conf/locale 有zh-Hans和zh-Hant两个文件, 其中zh-Hans是简体中文,...

MichaelShu
17分钟前
1
0
迷宫问题:顺序栈解法

采用顺序栈以及回溯法,一个比较简单的问题,但是从来没有写过,也算是弥补一下自己欠数据结构的债吧,居然也花了一个半小时,无地自容了。。 定义好数据结构求解算法就显得容易一些了。 st...

LoSingSang
23分钟前
0
0
Zookeeper 概述及应用场景

一、概述 分布式协调技术,主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。 ZooKeeper是一个分布式的,开放源码的分布式应用...

PeakFang-BOK
31分钟前
0
0
(译)OpenGL ES2.0 – Iphone开发指引

教程截图: OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的。 多数程序员...

robslove
41分钟前
0
0
金九银十跳槽季,程序员面试点解析之Java专场

前言 近年来Java工程师这个岗位炙手可热,市场需求大,学习Java的人也越来越多,所以IT企业与求职者的选择都比较多,那么IT企业在面试时都会提哪些问题呢。下面为大家分享 Java高级工程师面试...

老道士
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部