小蚂蚁学习数据结构(31)——折半查找法
2016-02-06 21:03
483 查看
终于看到了查找了,真是不想看了,我都快吐了,坚持一下,查找和排序看完就结束了,加油。
折半查找法
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog
折半查找法
# 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
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
- java数据结构和算法学习之汉诺塔示例