终于看到了查找了,真是不想看了,我都快吐了,坚持一下,查找和排序看完就结束了,加油。spa
折半查找法
.net
# 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/blogcode