/**
 * 功能:给定一个排序后的数组。包括n个整数。但这个数组已被旋转过多次,次数不详。找出数组中的某个元素。
 * 能够假定数组元素原先是按从小到大的顺序排列的。
 */

   /*** 思路:数组被旋转过了,则寻找拐点。* @param a* @param left* @param right* @param x:要搜索的元素* @return*/public static int search(int[] a,int left,int right,int x){int mid=(left+right)/2;if(x==a[mid])//找到元素return mid;if(left>right)return -1;if(a[left]<a[mid]){//左半边为正常顺序if(x>=a[left]&&x<=a[mid]){return search(a,left,mid-1,x);//搜索左半边}else{return search(a, mid+1, right, x);//搜索右半边}}else if(a[mid]<a[right]){//右半边为正常顺序if(x>=a[left]&&x<=a[mid]){return search(a,left,mid-1,x);//搜索左半边}else{return search(a, mid+1, right, x);//搜索右半边}}else if(a[left]==a[mid]){//左半边是反复元素if(a[mid]!=a[right]){//若右边元素不同,则搜索右边return search(a, mid+1, right, x);//搜索右半边}else{//否则两边都搜索int result=search(a, left, mid=1, x);if(result==-1){return search(a, mid+1, right, x);}elsereturn result;}}return -1;}

转载于:https://www.cnblogs.com/gccbuaa/p/7276835.html

9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...相关推荐

  1. 查找python矩阵中最大元素_找出矩阵中最大的元素

    当提示输入矩阵中的行数,然后提示输入这些行的元素时,我需要找到矩阵中最大的元素并返回其位置(行和列).在 例如,如果输入2行,如下所示: [1 3 7] [4 8 1] 最大元素的位置将是(1,1), ...

  2. python步骤解析 给定一个整数数组和目标值_给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 例如给定nums = [2,7,11,15],target = 9...

    python解决方案 nums = [1,2,3,4,5,6] #假如这是给定的数组 target = 9 #假如这是给定的目标值 num_list = [] #用来装结果的容器 def run(nu ...

  3. 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. 使用暴力算法 解决思想: ...

  4. 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...

  5. 给定一个排序好的数组,插入一个数,使其仍然有规律不使用排序算法

    给定一个排序好的数组,插入一个数,使其仍然有规律 不使用排序算法 public class test14 { //数组习题public static void main(String[] args) ...

  6. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...

    2019独角兽企业重金招聘Python工程师标准>>> /** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详.找出数组中的某个元素. * 可以假定 ...

  7. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  8. 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。

    笔者初涉<算法设计与分析>这门专业课,在做一些算法设计题的过程中遇到一些小感悟,特此记录和大家分享. 下面直接给出算法题目: 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 ...

  9. 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

最新文章

  1. Python多线程threading和多进程multiprocessing的区别及代码实现
  2. 国考临近——送给奔跑在国考路上的人的一些话
  3. python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算
  4. 如何在Github里创建organization和代码仓库
  5. oracle數據庫any,Oracle权限集合全集
  6. java程序打包为jar_将Java应用程序打包为一个(或胖)JAR
  7. 用户模式下的线程同步
  8. C++之构造函数和类型转换探究
  9. 【万字总结,花几分钟让你进一步了解指针】(学习笔记11--指针中)
  10. 特斯拉电动卡车霸气发布,还有一个意外惊喜(全新跑车)
  11. js基础之--变量 作用域和内存问题
  12. java map是有序的吗_java中map、set、list是否有序
  13. Rational Rose工具栏中没有参与者工具(小人图标)的解决方法
  14. 变压器励磁模型 Matlab/simulink 可用于模拟电压暂降等电能质量问题
  15. java的LocalDateTime类来获取当天时间、前一天时间,本周的开始和结束时间、本月的开始和结束时间
  16. 百度脑图-便捷的思维工具
  17. centos7 linux ffmpeg 改变 修改 视频 帧频 shell 懒人系列-17
  18. 产生式推理的简单识别系统
  19. CAD 批量提取点坐标,实现坐标的快速提取
  20. 用c语言编写一个酒店点菜菜单,C课程设计报告酒店点菜管理系统设计.doc

热门文章

  1. HTML5学习之语义化标签
  2. java正则表示判断。是否以某个关键字结尾的
  3. 使用JAVA数组实现顺序表
  4. 马士兵java视频学习顺序
  5. HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)
  6. iOS SDK:iOS调试技巧
  7. WP7开发—Silverlight多点触摸事件详解【含Demo代码】
  8. 大学毕业标语计算机学院,大学毕业横幅标语创意
  9. leetcode算法题--Reverse Words in a String
  10. ubuntu安装snort