zoukankan      html  css  js  c++  java
  • 递归求解最大值和最小值

    递归求解最大值和最小值

    思路

    这里使用递归实际是把大问题转化为小问题,寻找最大值和最小值都可以看作数组的最后一个位置的元素和剩下的所有元素的最值进行比较,由此可以转化为递归问题。

    代码实现

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=100;
    int search_max(int a[], int n)
    {
    	if(n==1)
    		return a[0];
    	else 
    	{
    		int tmp=search_max(a, n-1);
    		return a[n-1] > tmp ? a[n-1]:tmp; 
    	}
    }
    int search_min(int a[], int n)
    {
    	if(n==1)
    		return a[0];
    	else 
    	{
    		int tmp=search_min(a, n-1);
    		return a[n-1] < tmp ? a[n-1]:tmp; 
    	}
    }
    /*
    	产生n个[min, max]的随机数。可能会有重复值。
    */
    void initRandomize(int *arr, int n, int min, int max)
    {
        int i = 0;
        srand(time(0));  			/*设置种子,并生成伪随机序列*/
        for (i = 0; i < n; ++i) {
            arr[i] = rand() % (max - min + 1) + min;  /*得到从[min, max]之间的随机数*/
            printf("%d ", arr[i]);
        }
        printf("
    
    ");
    }
    int main()
    {
    	int a[15];
    	initRandomize(a, 10, 0, 10);
    	cout<<"最大值为:"<<search_max(a, 10)<<endl;
    	cout<<"最小值为:"<<search_min(a, 10)<<endl;
    	return 0;
    }
    
    欢迎评论交流!
  • 相关阅读:
    打造自定义 eslint
    二叉树(三): 二叉查找树
    二叉树(二): 补充
    二叉树(一): 遍历
    redux 源码浅析
    react-redux 源码浅析
    WebComponents使用以及思考
    SHELL 语法以及实例
    React-Native 原生 APP 更新
    关于 cdn 在项目中的使用
  • 原文地址:https://www.cnblogs.com/alking1001/p/11887226.html
Copyright © 2011-2022 走看看