算法练习——在有序序列(r1,r2,...,rn)中,存在序号i(1<=i<=n),使得ri=i。请设计一个分治算法找到这个元素。 要求算法在最坏情况下的时间性能为O(logn))
算法练习
- 题目
- 答案
- 注意
题目
答案
#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;
}
注意
- 这道题既可以采用递归,也可以采用二分查找,思路是一致的
- 输入数据时要符合题目条件按顺序输入,不要随便输入(我之前就栽在这了,呜呜呜)
算法练习——在有序序列(r1,r2,...,rn)中,存在序号i(1<=i<=n),使得ri=i。请设计一个分治算法找到这个元素。 要求算法在最坏情况下的时间性能为O(logn))相关推荐
- 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
目录 一.题目 二.解答 三.测试数据 一.题目 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...
- 最坏情况为线性时间的选择算法(SELECT)
该文章参考(代码参考进行修改已经验证)--来源作者博客 算法思想 1.将数组的 n 个元素划分为 [n/5](向下取整)组,每一组5个元素,且至多只有一组由剩下的 n mod 5 个元素组成 2.寻找 ...
- 最坏情况为线性时间的选择算法
最坏情况为线性时间的选择算法 参考:[算法]算法导论:https://www.bilibili.com/video/BV1Tb411M7FA?p=6 提出问题:从一个数组中找到第K个最大数字,即TOP ...
- 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。
笔者初涉<算法设计与分析>这门专业课,在做一些算法设计题的过程中遇到一些小感悟,特此记录和大家分享. 下面直接给出算法题目: 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 ...
- 请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素
给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素. 实现这个算法,并为可能出现的特例情况安排好处理措施. 倒数第m个元素"是这样规定的:当m= ...
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符
题目描述 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符. 给定一个字符串(不一定全为字母)A及它的长度n.请返回第一个重复出现的字符.保证字符串中有重复字符,字符串的长度小于等于500 ...
- 【C++】公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请设计一个“高效”的算法求解。
题目分析 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?请设计一 ...
- Leapfrog Triejoin:最坏情况下的最优连接算法
介绍 leapfrog triejoin是商业数据记录系统 LogicBlox® 采用的一种新颖的连接算法,在不同的基准测试中表现出色.leapfrog triejoin论文的写作者认为这个算法,即使 ...
- 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短。(哈夫曼树)...
请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短. 输入描述: 每组数据一行,为待编码的字符串.保证字符串长度小于等于1000. 输出描述: 一行输出最短的编码后长度. 输入例子 ...
最新文章
- C语言嵌入式系统编程修炼之(六)性能优化
- 使用python处理实验数据-yechen_pro_20171231
- STM32下载库资料
- 百度地图拖动标注后获取坐标
- [转载]GIF、JPEG 和 PNG的区别在哪里?
- c语言序列化后只有四位小数,《C编程.高级C》4.序列化
- IP基础及ping命令
- [转]Mysql FROM_UNIXTIME as UTC
- 阿里云OSS上传、下载、STS授权(Java篇)
- 无线网络 EAP 认证
- 网络:七层,HTTP应用层、TCP传输层、IP网络层,拔网线TCP还在,三次握手保证双向与减少因延时传输错误
- AJAX-Cache:一款好用的Ajax缓存插件
- [附源码]java毕业设计网上手机商城
- Python关于人脸图片转换128/512维度向量的两种做法
- 【算法题解】Codeforces Round #817 (Div. 4)题解
- 对页面上所有ajax的请求进行监听
- css(六)--css高级技巧
- springboot实现高并发红包系统(java 全网最全包括语音口令 文字口令 普通 拼手气)
- stm32输出正弦波
- iOS真机播放MP4视频文件不出来的解决方法 AVPlayer
热门文章
- 第8.12节 Python类中使用__dict__定义实例变量和方法
- python安装扩展库常用的命令_Python环境——安装扩展库
- 【NLP】word2vec词向量模型训练——基于tensorflow
- cs6给画笔分组_ps里笔刷怎么分组
- 学习JAVA的随性笔记-权限修饰符
- 2021年裂解(裂化)工艺复审模拟考试及裂解(裂化)工艺作业模拟考试
- 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数
- Win 10 Hyper-V 虚拟机怎么迁移部署
- Nginx——nginx作为静态资源web服务(CDN场景)
- vue-cli+mock.js+axios模拟前后台数据交互