Bubble Sort 2D Array dalam Java
Bubble Sort adalah algoritma pengurutan sederhana yang bekerja dengan membandingkan elemen-elemen berdekatan dan menukar posisi mereka jika tidak dalam urutan yang diinginkan. Algoritma ini dapat diterapkan pada array satu dimensi dan juga array dua dimensi. Pada artikel ini, kita akan membahas implementasi Bubble Sort untuk mengurutkan array dua dimensi dalam Java.
Cara Kerja Bubble Sort untuk Array 2D
Dalam Bubble Sort 2D, array diurutkan berdasarkan kolom atau baris tertentu. Prosesnya melibatkan perulangan melalui array dan membandingkan elemen-elemen pada kolom atau baris yang dipilih. Jika elemen-elemen tidak dalam urutan yang diinginkan, mereka ditukar. Perulangan ini berlanjut sampai semua elemen berada dalam urutan yang benar.
Implementasi Java
Berikut contoh implementasi Bubble Sort untuk mengurutkan array 2D berdasarkan kolom pertama:
public class BubbleSort2D {
public static void main(String[] args) {
int[][] arr = {
{5, 2, 9},
{1, 7, 3},
{8, 4, 6}
};
// Mencetak array asli
System.out.println("Array Asli:");
printArray(arr);
// Mengurutkan array berdasarkan kolom pertama
bubbleSort(arr, 0);
// Mencetak array terurut
System.out.println("\nArray Terurut:");
printArray(arr);
}
// Fungsi untuk mengurutkan array 2D berdasarkan kolom tertentu
public static void bubbleSort(int[][] arr, int col) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j][col] > arr[j + 1][col]) {
// Menukar baris jika elemen pada kolom yang ditentukan tidak dalam urutan
for (int k = 0; k < arr[0].length; k++) {
int temp = arr[j][k];
arr[j][k] = arr[j + 1][k];
arr[j + 1][k] = temp;
}
}
}
}
}
// Fungsi untuk mencetak array 2D
public static void printArray(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
Kode di atas akan menghasilkan output sebagai berikut:
Array Asli:
5 2 9
1 7 3
8 4 6
Array Terurut:
1 7 3
5 2 9
8 4 6
Keuntungan dan Kerugian Bubble Sort
Keuntungan:
- Algoritma yang sederhana dan mudah dipahami.
- Cocok untuk array kecil.
Kerugian:
- Kompleksitas waktu O(n^2), yang membuatnya tidak efisien untuk array besar.
- Tidak stabil, artinya urutan relatif elemen yang sama mungkin berubah setelah pengurutan.
Kesimpulan
Bubble Sort dapat digunakan untuk mengurutkan array 2D dalam Java, tetapi untuk array besar, algoritma pengurutan yang lebih efisien seperti Merge Sort atau Quick Sort lebih direkomendasikan.