分治法——查找最大最小元素(C++)
2018-03-17 20:02
190 查看
#include<iostream> #include<cstdlib> #include<cstdio> using namespace std; const int N=1000; int mini,maxi; int l ; void maxMin(int i,int j,int &max,int &min); int main() { int n; cout<<"请输入数组元素个数: "; cin>>n; cout<<"请输入"<<n<<"个元素:"; for(int i=0;i<n;i++) cin>>l[i]; maxMin(0,n-1,maxi,mini); cout<<"最大元素: "<<maxi<<endl; cout<<"最小元素: "<<mini<<endl; return 0; } void maxMin(int i,int j,int &max,int &min) { int min1,max1; if(i==j) max=min=l[i]; //表中只有一个元素时 else if(i==j-1) //表中有两个元素时 if(l[i]<l[j]){ max=l[j]; min=l[i]; } else { max=l[i]; min=l[j]; } else //表中多于两个元素时 { int m=(i+j)/2; //对半分割 maxMin(i,m,max,min); //求前部分子表中的最大、最小值 maxMin(m+1,j,max1,min1);//求后部分子表中的最大、最小值 if(max<max1) max=max1; //两子表最大元的大者为原表最大者 if(min>min1) min=min1; //两子表最小元的小者为原表最小者 } }
相关文章推荐
- 分治法——查找最大最小元素(Python)
- 分治法求最大最小元素
- 查找数组(不限维数)中的最大元素和最小元素
- 1.4 查找最大或最小的 N 个元素
- python3-开发进阶 heapq模块(如何查找最大或最小的N个元素)
- 在一个数组中查找最大的K个元素或者最小的K个元素
- 实验九指针1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 分治法求数组中的最大最小元素
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- 数据结构面试题1.2.9-查找最小的K个元素-使用最大堆
- 查找最大或最小的 N 个元素
- C语言 查找数组中最大最小元素
- 什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素
- 1.4.查找最大或最小的N个元素
- 给定数组,查找最小的k个元素或最大的k个元素
- 从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构
- Python中查找最大或最小的N个元素
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。
- 算法笔记04--分治法之寻找最大最小元素