二分法递归查找与二分法查找,随机数产生,冒泡排序
2015-08-14 19:32
295 查看
/*********************************************** * 作者 :skywalker_prime * 联系方式 :shanquan54@163.com * 最后修改时间 :2015-08-14 19:29 * 文件名称 :9.c * 程序描述 : * csdn地址 :blog.csdn.net/skywalker_prime ***********************************************/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> void bubble(int a[],int n);//冒泡排序 void printfs(int a[]);//打印数组 int search(int a[],int low,int high,int k);//while查找 int search1(int a[],int low,int high,int k);//递归查找 int main() { int i=0,a[10]; int num; int flag=0; srand(time(NULL)); for(i=0;i<10;i++) { a[i]=(rand()%20+1); } printfs(a); bubble(a,10); printfs(a); printf("please input the num:"); scanf("%d",&num); flag=search1(a,0,9,num); // flag=search(a,0,9,num); if(flag==1) { printf("找到咯!\n"); return 0; } else { printf("没有找到!\n"); } return 0; } void bubble(int a[],int n) { int i,j,temp; for(i=1;i<n;i++) { for(j=0;j<n-1;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } void printfs(int a[]) { int i=0; printf("\n"); for(i=0;i<10;i++) { printf("%d ",a[i]); } } #if 0 int search(int a[],int low,int high,int k) { printf("\nstart:"); int mid; low=low; high=high; while(low<=high) { mid=((low+high)/2); if(k>a[mid]) { low=mid+1; } else if(k<a[mid]) { high=mid-1; } else return 1; } return 0; } #endif int search1(int a[],int low,int high,int k) { int mid=(low+high)/2; if(low<=high) { if(a[mid]==k) { return 1; } else if(k>a[mid]) { return search1(a,mid+1,high,k); } else { return search1(a,low,mid-1,k); } } else { return 0; } }
相关文章推荐
- 设计模式之代理模式
- datatable
- HDOJ 5373 The shortest problem 【数论】
- android 电容屏(二):驱动调试之基本概念篇
- HDOJ 5373 The shortest problem 【数论】
- ListView中requestLayout执行流程解析
- Selendroid inspector
- 如何在Android智能手机上捕获数据包?
- ACM最大公共子序列&&回文串
- 懒人科技,是福是祸?
- Hadoop实战之hadoop2.5.2完全分布式安装
- OC - NSValueAndNSNumber
- android 电容屏(一):电容屏基本原理篇
- 11.PHP 教程_PHP Switch 语句
- Dolls---hdu4160(最大匹配)
- vs2010常见的错误
- php最简单的注入与最简单的避免方式
- 算法题:A除以B
- Derivation of User Browsing Model
- JS的覆盖特性来解决文件冲突问题,css的加载问题