Sazumi Viki
Maba IT Wajib Tau! Ini 5 Jenis Sorting Algorithm

Maba IT Wajib Tau! Ini 5 Jenis Sorting Algorithm

Maba IT Wajib Tau! Ini 5 Jenis Sorting Algorithm

Halo, di artikel kali ini. Kita akan belajar berbagai cara mengurutkan data dalam pemrograman, misalnya Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, dan Quick Sort. Mengurutkan data itu penting untuk membuat perangkat lunak yang bagus, dan kalau kita tahu banyak algoritma pengurutan.

kita bisa membuat program yang lebih cepat dan efisien. Artikel ini akan menjelaskan bagaimana cara kerja tiap-tiap algoritma pengurutan dan kapan waktu yang tepat untuk pakai algoritma yang mana. Yuk, kita mulai dari Bubble Sort yang simpel tapi berguna juga.

Bubble Sort

Cara kerja algorithm adalah dengan menukarkan posisi data yang bersebelahan hingga semua data terurut sesuai ketentuan yang diingingkan. Metode ini memang sederhana, tapi tidak cocok untuk list dengan banyak bilangan, ya!

1
2
3
4
5
6
7
8
9
void bubbleSort(int arr [], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)

for (j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1])
swap(&arr[j], &arr[j + 1]);
}

Selection Sort

Cara kerja metode ini adalah dengan mencari nilai tertinggi / terendah di dalam array kemudian menempatkan nilai tersebut di tempat semestinya. Metode ini cocok untuk list dengan bilangan yang sedikit dan benar-benar random.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void selectionSort(int arr[], int n)
{
int i, j, min_idx;
for (i = 0; i < n-1; i++)
{
min_idx = i;
for (j = i+1; j < n;++)
if (arr[j] < arr[min_idx])
min_idx = j;

if(min_idx!=i)
swap(&arr[min_idx], &arr[i]);
}
}

Insertion Sort

Cara kerjanya adalah membandingkan dan mengurutkan dua data pertama pada array, kemudian membandingkan data array berikutnya. Metode ini cocok untuk list yang kecil. Selain itu, algoritma ini juga tidak memerlukan storage yang besar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void insertionSort(int arr[], int n)
{
int i, key, j;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i - 1;

while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}

Merge Sort

Algorithm ini memecah kemudian menyelesaikan setiap bagian-bagian pecahannya tadi kemudian digabungkan kembali (merge & sort). Metode ini lebih stabil dan cocok untuk list yang besar. Namun, tidak cocok untuk list kecil karena akan memakan waktu lebih lama.

1
2
3
4
5
6
7
8
9
10
void mergeSort(int array[], int const begin, int const end)
{
if (begin >= end)
return; // Returns recursively

auto mid = begin + (end - begin) / 2;
mergeSort(array, begin, mid);
mergeSort(array, mid + 1, end);
merge(array, begin, mid, end);
}

Quick Sort

Metode ini mengambil salah satu elemen secara acak (biasanya dari tengah) yang disebut dengan pivot lalu menyimpan semua elemen yang lebih kecil di sebelah kiri pivot dan semua elemen yang lebih besar ke sebelah kanan pivot. Metode ini tidak stabil, tapi membutuhkan storage yang kecil, loh!

1
2
3
4
5
6
7
8
9
10
11
12
void quickSort(int arr[], int low, int high)
{
if (low < high)
{
int pi = partition(arr, low, high);

// Separately sort elements before
// partition and after partition
quickSort(arr. low, pi - 1);
quickSort(arr, pi + 1, high);
}
}

Penutup

Nah, itu dia beberapa cara mengurutkan data dalam pemrograman yang perlu kita tahu. Tiap cara punya keunggulan dan kelemahan sendiri-sendiri, dan ada kondisi-kondisi yang lebih pas buat pakai cara yang mana. Kalau kita mengerti berbagai macam metode pengurutan ini.

Kita bisa pilih cara yang paling cocok buat keperluan kita, mau itu buat data yang sedikit atau yang banyak. Semoga artikel ini berguna buat nambah wawasan kamu tentang pengurutan data di dunia pemrograman.

Author:Sazumi Viki
Link:https://www.sazumi.moe/Maba-IT-Wajib-Tau-Ini-5-Jenis-Sorting-Algorithm/
Licenses:By CC BY-NC-SA 3.0 CN Creative Commons
×