博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻转数组查找问题
阅读量:5874 次
发布时间:2019-06-19

本文共 1118 字,大约阅读时间需要 3 分钟。

hot3.png

示例:A[8] = {4,5,6,7,8,9,1,2,3} 查找某个数字是否在数组当中,也可以二分查找。如下:

// test50.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include
using namespace std;int find(int A[] , int left , int right , int pivot){ if(left > right) return -1; if(left == right && A[left] == pivot) return left; int mid = (left + right)/2; if(A[mid] == pivot) return mid; else if(A[mid] < pivot) //pivot 比 A[mid]大 { if(A[mid] > A[left]) //max 在mid的右边 { return find(A , mid + 1 , right , pivot); } else // max 在 mid 的左边 { if(pivot > A[right]) return find(A,left, mid - 1 , pivot); else return find(A,mid + 1 , right ,pivot); } } else //pivot 比 A[mid] 小 { if(A[mid] > A[left]) //min 在 mid的右边 { if(pivot < A[left]) // return find(A,mid + 1 , right , pivot); else return find(A,left, mid - 1 ,pivot); } else //min 在 mid 左边 { //min 在mid的左边 return find(A,left ,mid - 1 , pivot); } }}int main(int argc, char* argv[]){ int A[9] = { 4,5,6,7,8,9,1,2,3}; int pos = find(A,0 , 8 , 3); cout<
<

转载于:https://my.oschina.net/liangxiao/blog/163113

你可能感兴趣的文章
HDUOJ-------The Hardest Problem Ever
查看>>
学习嵌入式—导火线
查看>>
hdu 1217 Arbitrage (最小生成树)
查看>>
Bash Shell字符串操作小结
查看>>
sourceinsight技巧
查看>>
ASP.NET 解决URL中文乱码的解决
查看>>
el表达式跟ognl表达式的区别(用法和页面取值) 转
查看>>
解决java获取系统时间差8个小时 专题
查看>>
c#删除list中的元素
查看>>
Ubuntu 12.10安装QQ2012
查看>>
Ubuntu 13.04有线连接异常
查看>>
loj 1036(dp)
查看>>
javascript语法
查看>>
最遥远的距离
查看>>
Android Nine-patch(.9.png)小结
查看>>
C#实现大数据量TXT文本数据快速高效去重
查看>>
动态链接库(dll) __declspec(dllimport) __declspec(dllexport)
查看>>
Bootstrap3.0学习第二轮(栅格系统原理)
查看>>
Oracle Form属性、内置子程序、触发器、系统变量简要
查看>>
标准C++中的string类的用法总结
查看>>