hur.cn - 华软网

 热门搜索

求帮忙

  作者:未知    来源:网络    更新时间:2011/4/17
递归法,求一个整数序列中最小的那个。
---华软 网友回答---
C++">

#include "stdio.h"

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)
    {
        val1 = 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;
     }
    }
}

main()
{
    int array[9]={11,13,23,56,8,23,11,23,111},val; /*测试的数组,其中元素8为最小值*/
    val = getMin(array,9); /*调用递归函数getMin获得最小值*/
    printf("%d",val);
    printf("The minum element of this array is %d \n",val);
}

     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。