2017-04-12 6 views
2

このプログラムの目的は、最大から最小の整数形式のランダムな配列を選択的にソートすることです。これを行うには、最初の要素を最大の要素と交換しておく必要がありました。私は自分のメソッドが正しいと思うが、私はかなりJavaに慣れていないし、私のメソッドを正しく実行するために何をメインで呼び出すべきかわからない。前もって感謝します!Javaプログラムのソートランダム配列

package sortarray; 

public class SortArray { 

public static int randomInt(int low, int high) { 
double e; 
double x=Math.random(); 
e=low+x*(high-low); 
return (int)e; 
} 
public static int[] randomIntArray(int n) { 
int[] a = new int[n]; 
for(int i = 0; i < a.length; i++) { 
    a[i] = randomInt(-5, 15); 
} 
return a; 
} 

public static int indexOfMaxInRange(int[] a, int low, int high) { 
int index = low; 
for (int i = low + 1; i < a.length; i++) { 
    if (a[i] > a[index]) { 
     index = i; 
    } 
} 
return index; 
} 

public static void swapElement(int[] a, int index1, int index2) { 
    int temp = a[index1]; 
    a[index1] = a[index2]; 
    a[index2] = temp; 
} 

public static void sort(int[] a) { 
    int length = a.length; 
    //use length-1 because do not need to swap last element with itself 
    for (int i = 0; i < length-1; i++) { 
     int indexOfMax = indexOfMaxInRange(a, i, length-1); 
     swapElement(a, i, indexOfMax); 
    } 
} 

public static void printArray(int[] a) { 
for(int i = 0; i < a.length; i++) { 
    System.out.print(" " + a[i]); 
} 
} 


public static void main(String[] args) { 
int[] array = randomIntArray(30); 
    printArray();  
} 

} 
+0

'Arrays.sort(array);' – user2173372

答えて

2

配列をソートするために、あなたは、単に以下を呼び出す必要があります:

sort(array); 

その後、あなたはそれがでソートされていることを確認するために、再度配列を印刷することができます。

printArray(array); 
1

また、メソッドsort()printArray()のメソッドの中で呼び出すことができるので、printArray()を呼び出すとソートされたものが出力されます。

... 
public static void printArray(int[] a) { 
    sort(a); 
    for (int i = 0; i < a.length; i++) { 
     System.out.print(" " + a[i]); 
    } 
} 


public static void main(String[] args) { 
    int[] array = randomIntArray(30); 
    printArray(array); 
} 
... 
0

あなたは(で配列を置くべき 、あなたが使用するメソッドで、引数をそこに持っている必要があります)

0

あなたは配列の作り付けの機能を使用することができます。 inbuiltメソッドを呼び出し、配列を渡すだけです。

Arrays.sort(ここに配列を渡します)。

ドットで埋め込みメソッドを使用する場合は、このリンクを参照してください。ここで

Java : Sort integer array without using Arrays.sort()

1

私はコードレビューに掲載私のコードです。これはStringの配列をソートしますが、代わりに整数を入れることができます。ストリング

[H、B、D、G、F、E、A、C]

出力

[A、B、Cが与えられる https://codereview.stackexchange.com/questions/160243/sort-a-given-string-in-ascending-order

、D、E、F、G、H]

public class sortArray { 
    public static void sort (String[] str) 
    { 
     int lastPos = str.length - 1; 
     int minPos = 0; 
     String s = ""; 
     for (int i = 0; i < lastPos; i++) 
     { 
      minPos = i; 
      for (int j = i + 1; j <= lastPos; j++) 
       if (str[j].compareTo (str[minPos]) < 0) 
        minPos = j; 
      if (minPos != i) 
      { 
       s = str[i]; 
       str[i] = str[minPos]; 
       str[minPos] = s; 
      } 
     } 
    } 

    public static void main(String[] args){ 
     String[] str = {"H", "B", "D", "G","F", "E", "A", "C"}; 
     sort(str); 
     System.out.println(Arrays.toString(str)); 
    } 
}