Algoritma dan Struktur Data - pengurutan selection

12
Selection Sort Algoritma dan Struktur Data Kuliahkita - Edwin Lunando

Transcript of Algoritma dan Struktur Data - pengurutan selection

Page 1: Algoritma dan Struktur Data - pengurutan selection

Selection SortAlgoritma danStruktur Data

Kuliahkita - Edwin Lunando

Page 2: Algoritma dan Struktur Data - pengurutan selection

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

Page 3: Algoritma dan Struktur Data - pengurutan selection

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

Page 4: Algoritma dan Struktur Data - pengurutan selection

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

Page 5: Algoritma dan Struktur Data - pengurutan selection

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

Page 6: Algoritma dan Struktur Data - pengurutan selection

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

Page 7: Algoritma dan Struktur Data - pengurutan selection

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

Page 8: Algoritma dan Struktur Data - pengurutan selection

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

Page 9: Algoritma dan Struktur Data - pengurutan selection

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

Page 10: Algoritma dan Struktur Data - pengurutan selection

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; } } }}

Page 11: Algoritma dan Struktur Data - pengurutan selection

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 << " | "; }}

Page 12: Algoritma dan Struktur Data - pengurutan selection

Kompleksitas

Worst Case O(n²)

Best Case O(n²)

Average Case O(n²)