算法练习

  • 题目
  • 答案
  • 注意

题目

答案

#include<iostream>
using namespace std;
int find(int a[],int left,int right)
{if(left==right){if(a[left]==left) return left;else return -1;}int mid=(left+right)/2;if(a[mid]==mid) return mid;else {if(a[mid]<mid) left=mid+1;else right=mid-1;return find(a,left,right);}
}
int main()
{int n;cin>>n;int a[n+1],i,j;for(i=1;i<=n;i++)cin>>a[i];//数值输入部分int flag=find(a,1,n);if(flag) cout<<flag;else cout<<0;
}

注意

  1. 这道题既可以采用递归,也可以采用二分查找,思路是一致的
  2. 输入数据时要符合题目条件按顺序输入,不要随便输入(我之前就栽在这了,呜呜呜)

算法练习——在有序序列(r1,r2,...,rn)中,存在序号i(1<=i<=n),使得ri=i。请设计一个分治算法找到这个元素。 要求算法在最坏情况下的时间性能为O(logn))相关推荐

  1. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数

    目录 一.题目 二.解答 三.测试数据 一.题目   给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...

  2. 最坏情况为线性时间的选择算法(SELECT)

    该文章参考(代码参考进行修改已经验证)--来源作者博客 算法思想 1.将数组的 n 个元素划分为 [n/5](向下取整)组,每一组5个元素,且至多只有一组由剩下的 n mod 5 个元素组成 2.寻找 ...

  3. 最坏情况为线性时间的选择算法

    最坏情况为线性时间的选择算法 参考:[算法]算法导论:https://www.bilibili.com/video/BV1Tb411M7FA?p=6 提出问题:从一个数组中找到第K个最大数字,即TOP ...

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

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

  5. 请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素

    给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素. 实现这个算法,并为可能出现的特例情况安排好处理措施. 倒数第m个元素"是这样规定的:当m= ...

  6. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符

    题目描述 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符. 给定一个字符串(不一定全为字母)A及它的长度n.请返回第一个重复出现的字符.保证字符串中有重复字符,字符串的长度小于等于500 ...

  7. 【C++】公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请设计一个“高效”的算法求解。

    题目分析 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?请设计一 ...

  8. Leapfrog Triejoin:最坏情况下的最优连接算法

    介绍 leapfrog triejoin是商业数据记录系统 LogicBlox® 采用的一种新颖的连接算法,在不同的基准测试中表现出色.leapfrog triejoin论文的写作者认为这个算法,即使 ...

  9. 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短。(哈夫曼树)...

    请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短. 输入描述: 每组数据一行,为待编码的字符串.保证字符串长度小于等于1000. 输出描述: 一行输出最短的编码后长度. 输入例子 ...

最新文章

  1. C语言嵌入式系统编程修炼之(六)性能优化
  2. 使用python处理实验数据-yechen_pro_20171231
  3. STM32下载库资料
  4. 百度地图拖动标注后获取坐标
  5. [转载]GIF、JPEG 和 PNG的区别在哪里?
  6. c语言序列化后只有四位小数,《C编程.高级C》4.序列化
  7. IP基础及ping命令
  8. [转]Mysql FROM_UNIXTIME as UTC
  9. 阿里云OSS上传、下载、STS授权(Java篇)
  10. 无线网络 EAP 认证
  11. 网络:七层,HTTP应用层、TCP传输层、IP网络层,拔网线TCP还在,三次握手保证双向与减少因延时传输错误
  12. AJAX-Cache:一款好用的Ajax缓存插件
  13. [附源码]java毕业设计网上手机商城
  14. Python关于人脸图片转换128/512维度向量的两种做法
  15. 【算法题解】Codeforces Round #817 (Div. 4)题解
  16. 对页面上所有ajax的请求进行监听
  17. css(六)--css高级技巧
  18. springboot实现高并发红包系统(java 全网最全包括语音口令 文字口令 普通 拼手气)
  19. stm32输出正弦波
  20. iOS真机播放MP4视频文件不出来的解决方法 AVPlayer

热门文章

  1. 第8.12节 Python类中使用__dict__定义实例变量和方法
  2. python安装扩展库常用的命令_Python环境——安装扩展库
  3. 【NLP】word2vec词向量模型训练——基于tensorflow
  4. cs6给画笔分组_ps里笔刷怎么分组
  5. 学习JAVA的随性笔记-权限修饰符
  6. 2021年裂解(裂化)工艺复审模拟考试及裂解(裂化)工艺作业模拟考试
  7. 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数
  8. Win 10 Hyper-V 虚拟机怎么迁移部署
  9. Nginx——nginx作为静态资源web服务(CDN场景)
  10. vue-cli+mock.js+axios模拟前后台数据交互