java - 我的递归程序查找数组中的最小值不起作用

标签 java arrays recursion

我创建了一个程序,它使用递归查找数组中的最小值,但它没有按我的预期工作。我不知道为什么,但它没有返回输出中的实际最低值。这是我的代码:

package weekFour;

public class MinInt {

    static int[] arr = {24,52,74,9,34,23,64,34};
    static int min;
    static int minIndex;

    public static void main(String[] args){
    MinInt m = new MinInt();
    System.out.println("Minimum is :" + m.findMin(arr, 0, min));
    }

    public int findMin(int[] arr, int index, int min){
        if(index <= (arr.length - 1)){    //makes sure you only check elements in the array
            if(arr[index] < min){        //if value is smaller than current min
                min = arr[index];        //set new min
                minIndex = index;        //records position of min in array
            }
            return findMin(arr, index + 1, min);   //recursive method call
        }
        System.out.println("The Minimum Value in this Array is " + min + " at Index " + minIndex);
        return min;
    }
}

我的输出是:

The Minimum Value in this Array is 0 at Index 0
Minimum is :0

最佳答案

更改代码中的最小值,这里是非常优化的代码来执行此反向工作

int mini(int array[], int size) {
    if (size == 1) {
        return array[0];
    }
    else {
        return (array[size] < mini(array, size - 1)) ? array[size]: mini(array, size - 1);
    }
}

希望我的帮助能让编码工作愉快。

关于java - 我的递归程序查找数组中的最小值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510694/

相关文章:

java - 手机重启后闹钟管理器不起作用

java - Quarkus、Hibernate ORM 和 REST - RESTEASY008200 : JSON Binding deserialization error:

java - 服务器上有效的 JAX-WS 请求参数为 NULL

javascript - array.splice 出现意外结果

c - 将空字符写入函数中的数组时出现段错误

node.js - 找到所需文件后,如何立即停止递归搜索目录?

java - 了解配置文件中的主要注释

javascript - 创建一个数组,将其转换为 json 并将其传递给 php

java - 递归Java方法中的返回语句不终止方法

c - 这个嵌套函数问题可以在 C 中解决吗?