C语言实现两个递减数列中寻找某一个数

本文实例讲述了C语言实现两个递减数列中寻找某一个数的方法,分享给大家供大家参考之用。具体方法如下:

通常来说这道题算二分查找法中非常有难度的一题了。

题目如下:

一个数组是由一个递减数列左移若干位形成,比如{4, 3, 2, 1, 6, 5}是由{6, 5, 4, 3, 2, 1}左移两位,在这种数组中查找某一个数。

实现代码如下:

int array[] = {4, 3, 2, 1, 6, 5};

const int size = sizeof array / sizeof *array;

int findMinNumber(int (&array)[size], int start, int last, int dest)

{

int mid = (last - start) / 2 + start;

int result;

if(start > last) {

return -1;

}

if(array[mid] == dest) {

result = mid;

return result;

}

if(array[mid] <= array[start]) {

if(dest > array[mid] && dest <= array[start]) {

last = mid - 1;

result = findMinNumber(array, start, last, dest);

}

else {

start = mid + 1;

result = findMinNumber(array, start, last, dest);

}

} else if(array[mid] > array[start]) {

if(dest < array[mid] && dest >= array[last]) {

start = mid + 1;

result = findMinNumber(array, start, last, dest);

}

else {

last = mid - 1;

result = findMinNumber(array, start, last, dest);

}

}

return result;

}

程序运行结果如下图所示:

希望本文所述对大家C程序算法设计的学习有所帮助。相关阅读:

英雄联盟辅助lol挂机不被踢的方法(lol挂机脚本)

JQuery给元素绑定click事件多次执行的解决方法

jquery 设置style:display的方法

在WordPress中获取数据库字段内容和添加主题设置菜单

iOS开发中的几个手势操作实例分享

Win7小工具Gadgetarian遇见Win10会发生什么呢?

基于JavaScript实现 网页切出 网站title变化代码

C#基于面向过程计算加权平均分的方法

jQuery采用连缀写法实现的折叠菜单效果

JavaScript实现的in_array函数

原生JavaScript生成GUID的实现示例

如何取得中文字符串中出现次数最多的子串

6种非常炫酷的CSS3按钮边框动画特效

46 个非常有用的 PHP 代码片段

寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...相关推荐

  1. 非递减数列JAVA_C语言实现两个递减数列中寻找某一个数

    本文实例讲述了C语言实现两个递减数列中寻找某一个数的方法,分享给大家供大家参考之用.具体方法如下: 通常来说这道题算二分查找法中非常有难度的一题了. 题目如下: 一个数组是由一个递减数列左移若干位形成 ...

  2. php两个字符串公共,C++_C语言求两个字符串的最长公共子串,本文实例讲述了C语言求两个字 - phpStudy...

    C语言求两个字符串的最长公共子串 本文实例讲述了C语言求两个字符串的最长公共子串的方法.分享给大家供大家参考.具体实现方法如下: #include "stdio.h" #inclu ...

  3. c语言顺序表的例子,本文实例讲述了C语言实现的顺序表功能。分享给大家供大家参考,具体如下:seqlist.h#ifndef __SEQLIST_H__#define __...

    本文实例讲述了C语言实现的顺序表功能.分享给大家供大家参考,具体如下: seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include # ...

  4. php datatable导出excel,C#_C#实现将DataTable内容输出到Excel表格的方法,本文实例讲述了C#实现将DataTabl - phpStudy...

    C#实现将DataTable内容输出到Excel表格的方法 本文实例讲述了C#实现将DataTable内容输出到Excel表格的方法.分享给大家供大家参考.具体如下: 1.关于本文 本文描述了一个函数 ...

  5. java sqlite 多线程并发_C#_C#解决SQlite并发异常问题的方法(使用读写锁),本文实例讲述了C#解决SQlite并 - phpStudy...

    C#解决SQlite并发异常问题的方法(使用读写锁) 本文实例讲述了C#解决SQlite并发异常问题的方法.分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLI ...

  6. 骰子算法 php,C++_C++实现N个骰子的点数算法,本文实例讲述了C++实现N个骰子 - phpStudy...

    C++实现N个骰子的点数算法 本文实例讲述了C++实现N个骰子的点数算法,分享给大家供大家参考之用.具体方法如下: 题目要求:把n个骰子仍在地上,所有点数 实现代码如下: #include using ...

  7. winform调用html,C#_C#通过html调用WinForm的方法,本文实例讲述了C#通过html调用W - phpStudy...

    C#通过html调用WinForm的方法 本文实例讲述了C#通过html调用WinForm的方法.分享给大家供大家参考,具体如下: 完整测试代码: Form1.cs: using System; us ...

  8. php统计大写字母个数,C++_C++统计中英文大小写字母、数字、空格及其他字符个数的方法,本文实例讲述了C++统计中英文 - phpStudy...

    C++统计中英文大小写字母.数字.空格及其他字符个数的方法 本文实例讲述了C++统计中英文大小写字母.数字.空格及其他字符个数的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * ...

  9. php 多线程写入文件,C#_C#实现多线程写入同一个文件的方法,本文实例讲述了C#实现多线程 - phpStudy...

    C#实现多线程写入同一个文件的方法 本文实例讲述了C#实现多线程写入同一个文件的方法.分享给大家供大家参考.具体实现方法如下: namespace WfpApp { public partial cl ...

最新文章

  1. SQL Server查询某字段在哪些表中
  2. 微信小程序学习:开发注意点
  3. The Majesty Of Vue.js
  4. [mybatis]Configuration XML_properties
  5. java方法执行的时间_计算Java中任意一个方法的执行时间的工具类
  6. JavaWeb基础—dbutils的简单入门
  7. Oracle 数据库误truncate table恢复过程
  8. Andriod UI设计之度量单位说明(DIP,DP,PX,SP)
  9. 行内元素多出的空白文本节点的解决方法
  10. Flash CS4学习笔记1
  11. 输入罗马数字1到12输出阿拉伯数字C语言,用C语言古罗马数字转化阿拉伯数字
  12. RSE2021/云检测:Automatic cloud and cloud shadow detection in tropical areas用于PlanetScope热带地区自动云和云阴影检测
  13. prometheus-容器健康状况监控
  14. 这100 个网络基础知识,看完成半个网络高手
  15. Android-Dialogs(一) AlterDialog基本使用
  16. 支持免费试用的香港云服务器推荐
  17. 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍
  18. 伦敦旅游体验推荐:全英偶像之旅
  19. 北上深程序猿纷纷入杭!杭州互联网工程师人才净流入率全国第一
  20. 网龙《DJ版设计方法论微课》笔记

热门文章

  1. TYVJ P1073 加分二叉树 Label:区间dp
  2. char*,const char*和string的相互转换
  3. mysql/mariadb主从复制
  4. new 对象时的暗执行顺序
  5. 人物和背景分离的快速方法
  6. 51 Nod 阶乘后面0的数量
  7. [BZOJ]1071 组队(SCOI2007)
  8. Https背景与证书在spring boot项目中的使用
  9. input中的name,value以及label中的for
  10. partproble在RHEL 6下无法更新分区信息