[C How To Program] 习题6.35 二分查找
来源:互联网 发布:淘宝如何加入全球购 编辑:程序博客网 时间:2024/06/08 02:28
#include <stdio.h>#define N 10void swap(int *a, int *b){int tmp = *a;*a = *b;*b = tmp;}void asort(int *a ,int n){int i, j;for(i = 1; i < n;i++){for( j = 0; j <= n - i - 1; j++){if(a[j] > a[j + 1]){swap( &a[j], &a[j + 1]);}}}}void printA(int *a, int n){int i;for(i = 0; i < n; i++){printf("[%d]:%d ", i, a[i]);}printf("\n");}int bSearch(int *a , int n, int key){int start = 0 ,end = n, mid;while( start <= end){mid = (start + end) / 2;if( a[mid] == key){return mid;}else if(a[mid] > key){end = mid - 1;}else{start = mid + 1;}}return -1;}int main(){int i, a[N] = {0};srand(time(NULL));for(i = 0; i < N; i++){a[i] = rand() % 100;}printA(a, N);asort(a, N);printA(a, N);for(i = 0; i < N; i++){printf("%d in a[%d]\n", a[i], bSearch(a, N, a[i]));}}
0 0
- [C How To Program] 习题6.35 二分查找
- [C How To Program] 习题 3.36
- [C How To Program] 习题3.38
- [C How To Program] 习题3.46
- [C How To Program] 习题5.22
- [C How To Program] 习题5.28-最大公约数
- [C How To Program] 习题4.38
- [C How To Program] 习题5.39 汉诺塔
- [C How To Program] 习题6.30 erato_traverse
- [C How To Program] 习题6.24c 骑士漫游问题
- [C How To Program] 习题5.32 学习算术
- [C How To Program] 习题5.37 x的n次方
- [C How To Program] 习题6.32 递归的选择排序
- [C How To Program] 习题6.38 字符串反转打印
- [C How To Program] 习题7.17 龟兔赛跑问题
- C HOW TO PROGRAM!中
- [C How To Program] 习题6.39 递归求数组的最小值
- 《java how to program》习题全解----正在创作中
- Android 5.0 android:elevation 如果给button设置效果
- [C How To Program] 习题6.38 字符串反转打印
- H5页面如何唤醒app
- 黑马程序员--java自学--第二天:
- android 5.0 SSL Socket exception javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
- [C How To Program] 习题6.35 二分查找
- Sitemesh 3 的使用及配置
- UVA 10712 - Count the Numbers 容斥
- uboot简介
- Java 图像钝化与锐化
- 求1-1/2+1/3-…+1/99-1/100
- 视频解码之软解与硬解
- 搭建Git服务器
- Spring 整合Hession