終於看到了查找了,真是不想看了,我都快吐了,堅持一下,查找和排序看完就結束了,加油。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