Assalamu'alaikum...
Sorting (pengurutan)
merupakan algoritma untuk melakukan pengurutan data berdasarkan kategori tertentu.
Beberapa metode sorting antara lain adalah:
- Quick Sort
- Shell Sort
- Selection Sort
- Insert Sort
- Merge Sort
Kali ini akan dibahas mengenai contoh program sorting data dengan Bubble Sort.
Bubble Sort merupakan algoritma sorting data yang paling sederhana. Mari lihat gambaran dari algoritma ini.
for
i =
0
to n-
1
do
for
j = i+
1
to n
do
if
data
[i] >
data
[j] then
temp =
data
[i]
data
[i]=
data
[j]
data
[j]=temp
endif
endfor
endfor
contohnya ada 5 data yang tersimpan dalam array dan cba perhatikan bagaimana algoritma ini bekerja.
data[5] = {10,40,20,12,15};
Langkah penyelesaian :
- Langkah pertama membadingkan data[0] dengan data[1]. Jika data[0] lebih besar maka pindahkan nilai data[0] ke data[1] dan sebaliknya.
- data[0] terus dibandingkan dengan data-data selanjutnya yaitu data[2],data[3] dan data[4] hingga data[0] terisi oleh nilai paling kecil.
- Setelah data[0] selesai dibandingkan dengan semua data maka selanjutnya membandingkan data[1] dengan data[2], data[3], dan data[4] seperti proses sebelumnya hingga data[1] terisi oleh nilai terkecil kedua.
- Begitu seterusnya hingga data menjadi terurut.
Ilustrasi :
Tahap 1
Tahap 3
Tahap 4
Tahap 5
Setelah memahami mengenai algoritma bubble sort selanjutnya coba perhatikan contoh program berikut ini :
#include
<iostream>
using
namespace
std
;
void
bubbleSort
(
int
data
[],
int
n
){
int
temp;
for
(
int
i =
0
; i < n-
1
; i++)
{
for
(
int
j = i+
1
; j < n; j++)
{
if
(
data
[i]>
data
[j])
{
temp =
data
[i];
data
[i]=
data
[j];
data
[j]=temp;
}
}
}
}
int
main
(){
int
length;
cout<<
"Input jumlah elemen array : "
;
cin>>length;
int
data
[length];
for
(
int
i =
0
; i < length; i++)
{
cout<<
"Nilai elemen ke-"
<<i<<
" = "
;
cin>>
data
[i];
}cout<<endl;
cout<<
"Data belum terurut : "
<<endl;
for
(
int
i =
0
; i < length; i++)
{
cout<<
data
[i]<<
" "
;
}cout<<endl;
bubbleSort
(data,length);
cout<<
"Data sudah terurut : "
<<endl;
for
(
int
i =
0
; i < length; i++)
{
cout<<
data
[i]<<
" "
;
}cout<<endl;
}
Hasil output:
Output bubble sort |
Nah bagaimana mudah dipahami bukan?
Jika sobat punya studi kasus mengenai mengurutkan data didalam
struct
atau
array string
boleh komen dibawah ya, agar dapat dibahas pada postingan-postingan selanjutnya :)
Semoga bermanfaat. Terimakasih