SORTING (PENGURUTAN)
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil ke data lebih besar) atau menurun (descending = dari data besar ke data lebih kecil).
Algoritma pengurutan (sorting) : Bubble sort (gelembung) Selection sort (maksimum/minimun) Insertion sort (sisip) Heap sort Shell sort Quick sort Merge sort Radix sort Tree sort
Bubble sort (gelembung) Metode pengurutan gelembung (bubble sort) diinspirasi oleh gelembung sabun yang ada di permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air maka gelembung sabun akan selalu mengapung. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”, artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran.
Contoh Bubble sort 6 buah elemen dibawah ini akan diurutkan menaik (ascending) 25 27 10 8 76 21 1 2 3 4 5 6 Nilai Index LANGKAH 1 : Proses 1 Hasil 25 27 10 8 21 76 Proses 2 Proses 3 Proses 4 Proses 5 Hasil akhir langkah 1 : 8 25 27 10 21 76 1 2 3 4 5 6
8 25 27 10 21 76 8 10 25 27 21 76 LANGKAH 2 : Proses 1 Hasil 8 25 27 3 4 5 6 LANGKAH 2 : Proses 1 Hasil 8 25 27 10 21 76 Proses 2 Proses 3 Proses 4 Hasil akhir langkah 2 : 8 10 25 27 21 76 1 2 3 4 5 6
8 10 25 27 21 76 8 10 21 25 27 76 LANGKAH 3 : Proses 1 Hasil 8 10 25 4 5 6 LANGKAH 3 : Proses 1 Hasil 8 10 25 27 21 76 Proses 2 Proses 3 Hasil akhir langkah 3 : 8 10 21 25 27 76 1 2 3 4 5 6
8 10 21 25 27 76 8 10 21 25 27 76 LANGKAH 4 : Proses 1 Hasil 8 10 21 3 4 5 6 LANGKAH 4 : Proses 1 Hasil 8 10 21 25 27 76 Proses 2 8 10 21 25 27 76 1 2 3 4 5 6 Hasil akhir langkah 4 :
Selesai. Larik sudah terurutkan ! 8 10 21 25 27 76 1 2 3 4 5 6 LANGKAH 5 : Proses 1 Hasil 8 10 21 25 27 76 Hasil akhir langkah 5 : 8 10 21 25 27 76 1 2 3 4 5 6 Selesai. Larik sudah terurutkan !
Contoh program bubble sort ascending #include <stdio.h> #include <conio.h> #include <iostream.h> main(){ int i,k,temp; int L[5]; //Jumlah elemen dalam array ada 5 L[0]=1; L[1]=50; L[2]=10; L[3]=3; L[4]=2; //Proses secara Ascending(naik) for(i=0;i<=4;i++) for(k=4;k>=0;k--) if (L[k]<L[k-1]) {temp=L[k]; L[k]=L[k-1]; L[k-1]=temp; } cout<<L[i]<<endl; getch();}
Kerjakan!! Urutkan 5 buah nilai di bawah ini secara ascending dengan menggunakan algoritma bubble sort. 9 7 6 3 8