在不使用算法的情况下,找到数组中最大和最小元素并打印其索引位置的最简单方法是什么。有没有办法使用循环或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
我很感谢你的帮助
答案 0 :(得分:2)
你声明两个变量等于数组第一个位置的元素,两个变量等于第一个位置。
int min = array[0];
int max = array[0];
int posMin = 0;
int posMax = 0;
对数组的所有位置进行迭代迭代:
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 不能算是一个常数。
了解更多about
答案 1 :(得分:0)
对不起,但不幸的是,如果不使用算法,就没有办法做你想做的事情。
即使你选择2个数字并且捕食你是对的,你也会使用算法。