algoritma dan pemrograman sorting (pengurutan)dinus.ac.id/repository/docs/ajar/3_buble_sort.pdf ·...
TRANSCRIPT
Rencana Kegiatan Perkuliahan Semester
# Pokok Bahasan
1 Fungsi
2 Prosedur
3Sorting
4
5Searching
6
7 Review Pertemuan 1 - 6
8 Ujian Tengah Semester
# Pokok Bahasan
9Analisis Rekuren
10
11Struck & ADT
12
13Pointer
14
15 Presentasi Tugas Besar
16 Ujian Akhir Semester
Fungsi Swap
• Fungsi yang digunakan untuk menukarkan dua buah nilai
• void swap (int x, int y){
int temp;temp = x;x = y;y = temp;
}
Sorting
• Metode pengurutan data yang sebelumnyatersusun secara acak atau tidak terurutmenjadi terurut dan teratur berdasarkanaturan tertentu.
• Ascending (pengurutan dariangka/karakter terkecil menuju terbesar)
• Descending (pengurutan dariangka/karakter terbesar menuju terkecil)
Algoritma Sorting Brute Force
• Brute force adalah pendekatan yang ‘mudah’untuk menyelesaikan masalah dan mudahuntuk diimplementasikan.
• Kata force mengacu pada sebuah computerdan bukan pada sesuatu yang bersifatcerdas.
• Beberapa algoritma pengurutan brute forceyang sederhana diantaranya adalah BubbleSort dan Selection Sort
Proses Bubble sort
• Algoritma bubble sort membandingkan elemen-elemen yang berdekatan dan menukarnya jikaelemen-elemen tersebut belum urut.
• Dengan melakukan hal tersebut secaraberulang, maka akan mem-bubble up elementerbesar pada posisi terakhir.
• Pada iterasi selanjutnya akan mem-bubble upelemen ke-2 dan seterusnya hingga pada proseske n – 1 semua elemen akan terurut.
Bubble Sort Process
Algoritma Bubble Sort
Algoritma BubbleSort(A[0 … n-1])
//Mengurutkan array yang diberikan dengan
selection sort
//Input: sebuah array A[0 … n-1] dengan
elemen-elemen yang dapat diurutkan
//Output: array A[0 … n-1] yang telah
diurutkan
for i 0 to n – 2 do
for j 0 to n – 2 – i do
if A[j + 1] < A[j] swap A[j] and A[j+1]
Contoh Iterasi Bubble Sort
Contoh:
90 50 70 95 30 35 15
Contoh Iterasi Bubble Sort
Contoh:
90 50 70 95 30 35 15
50 90 70 95 30 35 15
50 70 90 95 30 35 15
50 70 90 30 95 35 15
50 70 90 30 35 95 15
50 70 90 30 35 15 | 95
Contoh Iterasi Bubble Sort
Contoh:
50 70 90 30 35 15 | 95
50 70 30 90 35 15 | 95
50 70 30 35 90 15 | 95
50 70 30 35 15 | 90 95
Contoh Iterasi Bubble Sort
Contoh:
50 70 30 35 15 | 90 95
50 30 70 35 15 | 90 95
50 30 35 70 15 | 90 95
50 30 35 15 | 70 90 95
Contoh Iterasi Bubble Sort
Contoh:
50 30 35 15 | 70 90 95
30 50 35 15 | 70 90 95
30 35 50 15 | 70 90 95
30 35 15 | 50 70 90 95
Contoh Iterasi Bubble Sort
Contoh:
30 35 15 | 50 70 90 95
30 15 | 35 50 70 90 95
Contoh Iterasi Bubble Sort
Contoh:
30 15 | 35 50 70 90 95
15 | 30 35 50 70 90 95
Program Bubble Sort
void bubble_sort(int iarr[], int num) {
int i, j, temp;
for (i = 0; i < num - 1; i++) {
for (j = 0; j < num – 1 - i; j++) {
if (iarr[j] > iarr[j + 1]) {
temp = iarr[j];
iarr[j] = iarr[j + 1];
iarr[j + 1] = temp;
}
}
}
}
Program Utama Bubble Sort
void bubble_sort(int[], int);
void main() {
int arr[30], num, i;
printf("\nEnter no of elements :");
scanf("%d", &num);
printf("\nEnter array elements :");
for (i = 0; i < num; i++)
scanf("%d", &arr[i]);
bubble_sort(arr, num);
return 0;
}
Kelebihan & Kekurangan
• Kelebihan
– Metode sederhana
– Algoritma mudah dipahami
• Kekurangan
– Kurang efisien, terutama untuk data banyak
– Pengulangan tetap dilakukan terus walau data sudah terurut