如何在递归中找到索引

时间:2013-01-25 22:17:17

标签: c recursion indexing

(在c编程中) 如果你不介意,我还有另一个索引问题。

我使用此函数来查找整数数组中的最大数字:

int Find_max(int *array,int n){
    if(n==1) return array[0];
    int num1=Find_max(array,n/2);
    int num2=Find_max(array+n/2,n-n/2);
    if(num1>num2) return num1;
    return num2;
}

如何获取我找到的数字的索引?我不允许使用任何类型的循环。

1 个答案:

答案 0 :(得分:4)

几乎相同的代码(样式保留):

int Find_max_index(int *array,int n){
    if(n==1) return 0;
    int index1=Find_max_index(array,n/2);
    int index2=n/2+Find_max_index(array+n/2,n-n/2);
    if(array[index1]>array[index2]) return index1;
    return index2;
}