剑指offer-旋转数组的最小数字
来源:互联网 发布:编程谜题 pdf 编辑:程序博客网 时间:2024/05/28 16:00
旋转数组的最小数字
#include <stdio.h>int MinInOrder(int* numbers,int index1,int index2){int result=numbers[index1];for(int i=index1+1;i<=index2;++i){if(result>numbers[i]){result=numbers[i];}}return result;}int Min(int* numbers,int length){if(numbers==NULL||length<=0){printf("Invalid parameters");}int index1=0;int index2=length-1;int indexMid=index1;while(numbers[index1]>=numbers[index2]){if(index2-index1==1){indexMid=index2;break;}indexMid=(index1+index2)/2;if(numbers[index1]==numbers[index2]&&numbers[indexMid]==numbers[index1]){return MinInOrder(numbers,index1,index2);}if(numbers[indexMid]>=numbers[index1]){index1=indexMid;}else if(numbers[indexMid]<=numbers[index2]){index2=indexMid;}}return numbers[indexMid];}int main(){ int numbers[]={3,4,5,1,2}; int val=Min(numbers,5); printf("%d",val); return 0;}
附
二分查找C语言代码如下:
#include <stdio.h>#include <stdlib.h>int BinarySearch(int* numbers,int start,int end,int val){if(numbers==NULL||start>end){ printf("Invalid parameters\n"); exit(-1);} if(start>end){printf("查无此数\n"); exit(-1);}int mid=(start+end)/2;if(numbers[mid]==val){return mid;}else if(numbers[mid]>val){return BinarySearch(numbers,start,mid-1,val);}else if(numbers[mid]<val){return BinarySearch(numbers,mid+1,end,val);}}int main(){int numbers[]={1,2,4,6,9,33,77,99};int index=BinarySearch(numbers,0,7,6);printf("找到了,该数的下标为:%d",index);return 0;}
0 0
- 【剑指offer】旋转数组的最小数字
- 剑指offer--旋转数组的最小数字
- 剑指offer--旋转数组的最小数字
- 剑指offer:旋转数组的最小数字
- 《剑指offer》旋转数组的最小数字
- 剑指 offer:旋转数组的最小数字
- 剑指offer-旋转数组的最小数字
- 剑指offer 旋转数组的最小数字
- 【剑指offer】旋转数组的最小数字
- 剑指offer 旋转数组的最小数字
- 剑指offer-旋转数组的最小数字
- 剑指Offer:旋转数组的最小数字
- 剑指Offer 旋转数组的最小数字
- 剑指offer|旋转数组的最小数字
- 剑指offer:旋转数组的最小数字
- 【剑指offer】旋转数组的最小数字
- 《剑指offer》旋转数组的最小数字
- 剑指Offer:旋转数组的最小数字
- javaweb学习笔记(二)-DTD技术
- HDU-1237 简单计算器(使用栈和不用栈的解法)
- office2010/2013/2016安装过程提示问题Office 16 Click-to-Run Extensibility Component
- [Hibernate]Hibernate的QBC查询
- Stm32-DS18B20的使用
- 剑指offer-旋转数组的最小数字
- shell脚本实现MBR、GPT自动分区及格式化
- Java环境配置及eclipse单元测试
- Egret 性能优化总结
- 多线程实现——新龟兔赛跑
- Java标识符
- 基于色温估计的自动白平衡
- 函数传递
- HTML 5 头head