MS一面
来源:互联网 发布:java转换字符串编码 编辑:程序博客网 时间:2024/04/29 21:54
知道自己不足,才能进步!
今天太慌了,设备临时出现状况。第一次这么近接触,心里太紧张了,感觉自己肯定打上的,怎么就懵了。
现在把问题整理下
一个数组,它是在一个有序的数组下,循环移位得到的,但循环多少位不知道,查找里面的一个元素,要做到效率最低;
有思路了,也是二分查找,但是要变形!!!
#include <stdio.h>/*思路:将数组方成两段 前一段,后一段 ,之后再利用二分查找*/int binarySearch(int low1,int high1,int* a,int k){int mid1;while(low1<=high1){mid1=(low1+high1)/2;if(k == a[mid1]) {printf("5---%d\n",mid1);return mid1;}else if(k<a[mid1]) high1 = mid1-1;elselow1= mid1+1;}}int func(int low,int high,int*a,int k){int low1,high1,mid1;int mid;mid = (low+high)/2; if(k == a[mid]){printf("1--%d\n",mid);return mid;}if(k == a[low]){printf("2-- %d\n",low);return low;}if(k == a[high]){printf("3--%d\n",high);return high;}if(k<a[mid] && k<a[low]) //11111{func(low,mid,a,k);return;}if(k>a[mid] && k>a[high]) //2222{func(mid,high,a,k);return;}if(k>a[mid] && k>a[low] && k>a[high] && ((k-a[mid]) > (k -a[low]))) //11111{func(low,mid,a,k);return;}if(k>a[mid] && k>a[high] && k>a[low] && ((k-a[mid]) < (k -a[low]))) //22222{func(mid,high,a,k);return;}if(k<a[mid] && k>=a[low] && k>a[high]) //1111{binarySearch(low,mid,a,k);}if(k>a[mid] && k<=a[high] && k<a[low]) //22222{binarySearch(mid,high,a,k);}return 0;}int main(){//int a[8] = {13,14,15,16,1,2,3,4}; //14, 2//int a[8] = {14,15,16,2,3,4,6,7};//int a[8] = {11,12,13,14,15,17,19,7};//int a[8] = {11,1,3,4,5,7,9,10};//int a[8] = {1,3,4,5,7,9,10,0};int n = sizeof(a)/sizeof(a[0]);int k;printf("input k : ");scanf("%d",&k);func(0,n-1,a,k);}
0 0
- MS一面
- 《一面》
- ms
- ms
- MS
- ms
- ms
- 一面湖水
- QQ一面
- IBM一面
- 腾讯一面
- 电话一面
- 华为一面
- 腾讯一面
- qq一面
- 一面五星红旗
- 360一面
- 腾讯一面
- ORACLE 11G的BIEE 部署与运用(一)——RCU创建资料档案库(图示)
- 解决Android应用安装快完毕时提示签名冲突
- Flex 学习笔记之三:IDEA 搭建Flex 项目(Hello World)
- eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务
- php开发APP接口 接收客户端的图片
- MS一面
- GCD 深入理解(二)
- 【转】文本文件与二进制文件区别
- 如何用C#动态编译、执行代码
- 利用ViewPageIndicator+ViewPager实现左右滑动带图标tab标签功能
- 求有向图强连通分量个数
- 从今天开始,学术吧!
- 重新选择C++——Try again, fail again, fail better
- oracle数据重复,只取一条