算法(7)最大值和最小值
来源:互联网 发布:软件算命吧 编辑:程序博客网 时间:2024/06/07 19:45
废话不说,直接上《算法导论》上的话。
将一对输入元素相互进行比较,然后把较小的与当前的最小值进行比较,把较大值与当前的最大值进行比较。
如果n是奇数,那么总共进行了 3*floor(n/2)次比较。如果n是偶数,则是先进行一次初始比较,然后进行3*(n-2)/2 次比较。因此,不管哪一种情况,总的比较次数至多是 3*floor(n/2)。
上代码:
#include<vector> #include<iostream> using namespace std; void show_vec(vector<int> vec) { cout<<endl; for(int i=0;i<vec.size();i++) cout<<vec[i]<<" "; cout<<endl; } void find_max_min(vector<int> &vec,int *p_max,int *p_min){int max=vec[0],min=vec[0];if(vec.size()%2==0){for(int i=0;i<vec.size();i=i+2){if(vec[i]>vec[i+1]){if(max<vec[i])max=vec[i];if(min>vec[i+1])min=vec[i+1];}else{if(max<vec[i+1])max=vec[i+1];if(min>vec[i])min=vec[i];}}}else{//max=vec[0];//min=vec[0];for(int i=1;i<vec.size();i=i+2){if(vec[i]>vec[i+1]){if(max<vec[i])max=vec[i];if(min>vec[i+1])min=vec[i+1];}else{if(max<vec[i+1])max=vec[i+1];if(min>vec[i])min=vec[i];}}}*p_max=max;*p_min=min;}int main() { int a[9]={11,16,22,12,7,22,17,8,200}; int max,min; vector<int> vec(a,a+9); show_vec(vec); find_max_min(vec,&max,&min); cout<<"max is "<<max<<endl; cout<<"min is "<<min<<endl; return 0; }
阅读全文
0 0
- 算法(7)最大值和最小值
- 【算法导论】最大值和最小值
- STL算法------最小值和最大值
- STL_算法_最小值和最大值(min_element、max_element)
- 算法导论程序18-最大值和最小值(Python)
- 求最值(最大值和最小值)
- 【算法导论】同时找出最大值和最小值
- 算法导论CLRS 9.1 最大值和最小值
- C++ STL 算法:最大值和最小值
- 算法导论9.1 最大值和最小值
- 最大值最小值查找算法(C++实现)
- 最小值最大值算法
- 基础算法(1):最值(最大值,最小值,同时求最大值和最小值)
- 基础算法(1):最值(最大值,最小值,同时求最大值和最小值)
- 算法数据结构C++实现7 - 同时查找最大值和最小值优化算法
- 《算法导论》CLRS算法C++实现(八)P108 最大值和最小值
- 数列特征(找最大值、最小值、和)
- 计算最大值和最小值(分治法)
- 初见 http 401------谈谈401和403的区别
- 节点机架移动(五)
- Python基础-装饰器-Decorator
- Scala闭包
- error LNK 2019:VS+MFC+双摄像头的打开
- 算法(7)最大值和最小值
- 2017年冬季浙大PAT真题(附本人代码)
- 解决Python3.6,发送POST请求错误提示:POST data should be bytes, an iterable of bytes, or a file object. It canno
- 动态内存函数:malloc(n字节),calloc(),realloc()
- 多进程二
- 从输入网址到页面呈现都发生了什么?
- Xdebug + Eclipse 单步跟踪调试PHP代码
- 02-vueJs开发环境搭建
- vue项目用js封装的md5