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;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    POJ 1673
    POJ 1375
    POJ 1654
    POJ 1039
    POJ 1066
    UVA 10159
    POJ 1410
    POJ 2653
    POJ 2398
    POJ 1556
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6811946.html
Copyright © 2011-2022 走看看