Algoritma dan Struktur Data - pengurutan selection
-
Upload
georgius-rinaldo -
Category
Engineering
-
view
70 -
download
2
Transcript of Algoritma dan Struktur Data - pengurutan selection
Selection SortAlgoritma danStruktur Data
Kuliahkita - Edwin Lunando
Selection sort adalah cara pengurutan dengan menelusuri dan mencari elemen yang terkecil / terbesar dari seluruh elemen yang ada dan menempatkannya di posisi pertama sampai semua elemen terurut dengan pengulangan.
Pendahuluan
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi pertama)● Delapan dipilih sebagai elemen terkecil● Bandingkan dengan elemen-elemen
berikutnya (8 dengan 1)
8
1
4
2
6
3
7
0
5
9
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi pertama)● 1 < 8, 1 dijadikan elemen terkecil● Bandingkan dengan elemen-elemen
berikutnya (1 dengan 4)● Karena 1 < 4 , elemen terkecil tetap 1 dan
lanjutkan perbandingan
8
1
4
2
6
3
7
0
5
9
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi pertama)● 1 < 2, 1 tetap sebagai elemen terkecil● Bandingkan dengan elemen-elemen
berikutnya (1 dengan 2)● Karena 1 < 2, lanjutkan perbandingan
8
1
4
2
6
3
7
0
5
9
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi pertama)● Sampai bertemu dengan 0, Elemen terkecil
menjadi 0 untuk iterasi pertama dan iterasi akan selesai karena tidak ada elemen yang < 0
8
1
4
2
6
3
7
0
5
9
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi pertama)● Tempatkan 0 di posisi pertama dan tukar
posisi elemen pertama dengan posisi elemen 0
0
1
4
2
6
3
7
8
5
9
Contoh: Proses Pengurutan Menaik
Langkah: (untuk posisi kedua)● Mulai kembali dari posisi kedua yaitu 1
sebagai elemen terkecil dan pembanding● Bandingkan 1 dengan elemen berikutnya
(4)...● Setelah iterasi kedua selesai, dan elemen
posisi kedua didapat, mulai dengan elemen ke-3, dst ...
0
1
4
2
6
3
7
8
5
9
Pseudocodeprocedure selectionSort( Output/Input A : list of sortable items )/* A - array berisi kumpulan angka *//* numItems - jumlah elemen dalam list */
for i = 0 to numItems - 1 do begin for j = i+1 to numItems do begin if A[i] > A[j] // Tukar posisi Temp = A[i] A[i] = A[j] A[j] = Temp end end
Kode dalam C++void selectionSort(int arr[], int n) { int pos_min,temp; // pos_min adalah posisi dari minimum for (int i=0; i < n-1; i++) { pos_min = i; // set pos_min sebagai index pertama di array for (int j=i+1; j < n; j++) { if (arr[j] < arr[pos_min]) pos_min=j; // jika ditemukan yang lebih kecil, set posisi min-nya } // tukar posisi karena pos_min tidak sama dengan i (ada nilai yang lebih kecil) if (pos_min != i) { temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; } } }}
Kode dalam C++ - (main)#include <iostream>
using namespace std;
int main(){ int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; selectionSort(numbers, 10); for (int i=0; i<10; i++) { cout << numbers[i]; cout << " | "; }}
Kompleksitas
Worst Case O(n²)
Best Case O(n²)
Average Case O(n²)