Struktur data sorting adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu. Pengurutan data dapat dilakukan secara ascending (urut naik) dan descending (urut turun).
Contoh:
Secara umum, metode pengurutan data dapat dibagi menjadi empat kategori, yaitu:
Metode ini menggunakan perbandingan untuk menentukan urutan data, Beberapa algoritma pengurutan berdasarkan perbandingan adalah:
Metode ini menggunakan struktur data priority queue untuk menyimpan data, Beberapa algoritma pengurutan berdasarkan prioritas adalah:
Metode ini bekerja dengan cara memasukkan data baru ke dalam array yang sudah terurut, Beberapa algoritma pengurutan berdasarkan penyisipan dan penjagaan terurut adalah:
Metode ini membagi data menjadi dua bagian, kemudian masing-masing bagian diurutkan secara rekursif, Beberapa algoritma pengurutan berdasarkan pembagian dan penguasaan adalah:
Contoh implementasi buble sort pada bahasa C :
#include
void bubble_sort(int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 6, 8, 1, 3, 25, 10};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Data sebelum diurutkan: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, n);
printf("Data setelah diurutkan: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
Penjelasan:
Algoritma bubble sort bekerja dengan cara membandingkan dua elemen data yang berurutan. Jika elemen pertama lebih besar dari elemen kedua, maka kedua elemen tersebut ditukar posisinya. Proses ini dilakukan secara berulang-ulang hingga tidak ada lagi elemen yang perlu ditukar posisinya.
Output:
Data sebelum diurutkan:
Data setelah diurutkan: