• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言实现两个递减数列中寻找某一个数

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言求斐波那契数列,斐波那契数列c语言,fibonacci数列c语言,c语言菲波那切数列,斐波拉契数列c语言等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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;
}

</div>

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言实现两个递减数列中寻找某一个数
  • C语言使用普通循环方法和递归求斐波那契序列示例代码
  • 求斐波那契(Fibonacci)数列通项的七种实现方法

相关文章

  • 2017-05-28C语言字符串操作总结大全(超详细)
  • 2017-05-28visual studio 2015下boost库配置教程
  • 2017-05-28C语言实现斗地主的核心算法
  • 2017-05-28c语言++放在前面和后面的区别分析
  • 2017-05-28用c语言实现2000内既能被3整除又能被7整除的个数
  • 2017-05-28C++里最容易忽视却不能忽视的问题(必看)
  • 2017-05-28C及C++中typedef的简单使用介绍
  • 2017-05-28C++设计模式之迭代器模式
  • 2022-04-30C语言转义字符
  • 2017-05-28求素数,用vector存储的实现方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言 扫雷程序的实现
    • C语言进制转换代码分享
    • jquery ready函数深入分析
    • 详解C++循环创建多级目录及判断目录是否存在的方法
    • 深入理解C++的多态性
    • C++可变参数的实现方法
    • C/C++ 中堆和栈及静态数据区详解
    • 详解C++编程中类模板的相关使用知识
    • 浅谈const变量赋值报错分析
    • 通俗地理解什么是编程语言

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有