0

配列内の最大要素と最小要素を見つけて、アルゴリズムを使用せずにそのインデックスの場所を出力する最も簡単な方法は何ですか? 私はJavaが初めてなので、ループまたはifステートメントを使用してそれを行う方法はありますか?それは私の知識が今のところ行っている限りです.

これは配列の私のコードです:

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

配列の最初の位置の要素に等しい 2 つの変数と、最初の位置に等しい 2 つの変数を宣言します。

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

配列のすべての位置に対して for to 反復を行います。

   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 が定数として提示されると、すべて O(n·log(n)) である最良の比較ベースの並べ替えアルゴリズムよりも (n が十分に大きい場合) 基数並べ替えがより適切になります。ただし、一般に、k は定数と見なすことはできません。

についてもっと読む

于 2012-11-29T17:32:30.337 に答える
0

申し訳ありませんが、残念ながら、アルゴリズムを使用せずにやろうとしていることを行う方法はありません。

2 つの数字を選んで自分が正しいと獲物にしても、アルゴリズムを使用していることになります。

于 2012-11-29T22:36:04.907 に答える