zoukankan      html  css  js  c++  java
  • 6.6递归法寻找最小值

    Q:编写一个程序,从一个整数序列中找到最小的元素,并用递归方法实现。

    #include<iostream>
    using namespace std;
    
    int getmin(int array[],int n) {
    	int val1,val2,val3;
    	if(n==1) return array[0];
    	if(n%2==0) {
    		val1=getmin(array,n/2);
    		val2=getmin(array+n/2,n/2);
    		if(val1<val2)
    			return val1;
    		else
    			return val2;
    	}
    	
    	if(n%2!=0) {
    		val2=getmin(array,n/2);
    		val2=getmin(array+n/2+1,n/2);
    		val3=array[n/2];
    		if(val1<val2) {
    			if(val1<val3)	return val1;
    			else return val3;
    		}
    		else {
    			if(val2<val3)	return val2;
    			else return val3;
    		}
    	}
    }
    
    int main() {
    	int n;
    	cin>>n;
    	int array[100];
    	for(int i=0;i<n;i++)
    		cin>>array[i];
    	cout<<getmin(array,n);
    	
    	return 0;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    第三个Sprint冲刺第三天
    回答第1-17章
    阅读第13-17章
    阅读第10、11、12章
    阅读第8,9,10章
    作业5.2 5.3
    四则运算 测试与封装 5.1
    阅读第5-7章
    阅读1-5章
    我给队友做的汉堡包
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6811946.html
Copyright © 2011-2022 走看看