0

在不使用算法的情况下找到数组中最大和最小元素并打印其索引位置的最简单方法是什么。有没有办法使用循环或 if 语句来做到这一点,因为我是 java 新手,就我目前所知。

这是我的数组代码:

import java.io.*;
public class Tut2ArraysQ4
{

public static void main(String [] args) throws IOException
{
 BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));

int []item=new int[5];
    for (int i = 0; i < item.length; i++)
        {
            System.out.println("Enter a number: ");
            int num=Integer.parseInt(kbd.readLine());
            System.out.println("Index " + i + " Contains Number "     + num);
        }

}//end class
}//end main

我很感激你的帮助

4

2 回答 2

2

您声明两个变量等于数组第一个位置的元素,两个变量等于第一个位置。

int min = array[0];
int max = array[0];
int posMin = 0;
int posMax = 0;

对数组的所有位置进行 for 迭代:

   for(all the position of the array)
      // if current position bigger than max
         // max = element of the array in the current position
         // posMin = current position
     // if current position smaller than min
        // min = element of the array in the current position
        // posMax = current position

另一种方法是对数组进行排序,最小的元素位于数组的第一个位置,最大的元素位于数组的最后一个位置。但是,此解决方案通常需要N lg N我在N. 如果您使用的是基数排序,则需要 k N,但是:

有时 k 表示为一个常数,这将使基数排序(对于足够大的 n)比最好的基于比较的排序算法更好,这些算法都是 O(n·log(n))。然而,一般来说,k 不能被认为是一个常数。

阅读更多关于

于 2012-11-29T17:32:30.337 回答
0

很抱歉,但不幸的是,如果不使用算法,就无法做你想做的事情。

即使您选择了 2 个数字并认为您是对的,您也将使用算法。

于 2012-11-29T22:36:04.907 回答