Java で sort()メソッドを使わずに配列をソートする方法
-
sort()
メソッドを使用せずに Java で配列をソートする-バブルソート -
sort()
メソッドを使用せずに Java で配列をソート-選択ソート -
sort()
メソッドを使用せずに Java で配列をソートする-挿入ソート
このガイドでは、sort()
メソッドを使用せずに Java で配列をソートする方法を説明します。配列をソートするには、一般的に 3つの方法があります。これらの 3つのアルゴリズムは、任意の配列をソートするのに非常に効率的です。これらのアルゴリズムについてもっと学びましょう。
sort()
メソッドを使用せずに Java で配列をソートする-バブルソート
最も単純なソートアルゴリズムであるバブルソートの概念を理解しましょう。基本的に、このアルゴリズムでは、配列内の隣接する要素を繰り返し交換します。それらが間違った順序である場合、アルゴリズムは 2つの要素を交換します。プレゼンテーションを参照します。
上の写真を見ると、隣接する 2つの要素が入れ替わっていることがわかります。最後に、ソートされた配列ができました。混乱がある場合は、このバブルソートアルゴリズムのコードを見てください。
public class Main {
public static void main(String[] args) {
int[] arr = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
// Example Array To sort...
for (int i = 0; i < arr.length; i++) { // Loop over java Array outer Loop use
for (int j = i + 1; j < arr.length; j++) { // Loop over java array
int tmp = 0; // tempraory variable in order to compare.
if (arr[i] > arr[j]) { // compare outer loop object with inner loop
tmp = arr[i]; // if greater than swapping.
arr[i] = arr[j]; // Swaping code here.
arr[j] = tmp;
}
}
}
// After Sorting Printing The Value.............
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
出力:
3
4
5
8
32
95
172
564
754
768
859
1500
外側のループは配列を通過するためだけのものであり、内側のループは各パスで隣接する順序付けされていない要素を交換します。最後のパスの終わりに、ソートされた配列が残ります。
sort()
メソッドを使用せずに Java で配列をソート-選択ソート
選択ソートアルゴリズムは、配列内の最小要素を検索し、それを配列の先頭に配置することで機能します。パスごとに、次に小さい要素を見つけて次に配置します。最終的に、2つのサブ配列を持つ配列を取得します。1つのサブ配列は、配列の先頭にあるソートされた配列です。他のサブ配列はソートされていないものです。
各パスで、昇順で移動します。最初に最大の要素を見つける場合は、降順で移動します。下の図を見てください。
上の図では、動きは降順であり、最初に最大の要素を見つけて最後に配置しています。プレゼンテーションでは、上で説明したように、アレイが 2つのサブアレイに分割されています。
public class Main {
public static void main(String[] args) {
int[] arr1 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
int small = -1; // at start there is no small number....
for (int i = 0; i < arr1.length; i++) {
small = i;
for (int j = i; j <= arr1.length - 1; j++) {
if (arr1[j] < arr1[small]) {
small = j;
}
// swap values
}
int temp = arr1[i];
arr1[i] = arr1[small];
arr1[small] = temp;
}
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
}
上記のコード例では、外側のループは配列を通過するように機能します。内側のループは、最小の要素を現在のインデックスの要素と交換します。
sort()
メソッドを使用せずに Java で配列をソートする-挿入ソート
挿入ソートは、配列のソートに使用できるもう 1つの単純なソートアルゴリズムです。このアルゴリズムでは、指定された配列も 2つのサブ配列に分割されます。ただし、選択ソートとは異なり、要素はソートされていないサブ配列から選択され、正しい位置に配置されます。下の写真の説明を見てください。
ご覧のとおり、隣接する要素間でスワップしていません。最小の要素を見つけて正しい位置に配置するだけです。最初の要素から繰り返し、最後に向かって進みます。要素はその前の要素と比較され、次に適切な場所が見つかるまでその隣の要素と比較されます。提供された例では、2
が正しい位置に配置される前に 4 回比較されていることがわかります。これがコード例です。
public class Main {
public static void main(String[] args) { // Insertion Sort....
int[] arr2 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
int number = arr2.length;
for (int a = 1; a < number; a++) {
int keyValue = arr2[a];
int b = a - 1;
while (b >= 0 && arr2[b] > keyValue) {
arr2[b + 1] = arr2[b];
b = b - 1;
}
arr2[b + 1] = keyValue;
}
// printing inserion sort............................
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
}
}
これらは、sort 関数を使用せずに Java で配列をソートするために使用できる 3つの方法です。
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn