Algoritma dan Struktur Data - pengurutan insertion
Click here to load reader
-
Upload
georgius-rinaldo -
Category
Engineering
-
view
98 -
download
2
description
Transcript of Algoritma dan Struktur Data - pengurutan insertion
Pengurutan Insertion
Algoritma danStruktur Data
Kuliahkita - Edwin Lunando
Pendahuluan
Pengurutan Insertion adalah metode pengurutan elemen pada penampung dengan cara menyisipkan elemen ke posisi yang memenuhi syaratnya (kurang dari atau lebih dari suatu elemen pada indeks tertentu).
Pemeriksaan dilakukan dari indeks ke-2 ke depan (posisi indeks dirinya - 1) sampai indeks pertama.
Proses: Pengurutan Membesar
● Mulai dengan indeks ke-2: 5● Perbandingan ke depan (dengan indeks dirinya-1): 6
5
3 1 8 7 2 46
Proses: Pengurutan Membesar
● Karena 5 < 6, sisipkan di 5 di depan 6 dan rapatkan kembali.
● Indeks pertama dan kedua telah teratur, mulai kembali dari indeks elemen yang dibandingkan +1 (2+1, berarti indeks ke-3)
5 3 1 8 7 2 46
5 3 1 8 7 2 46
5
Proses: Pengurutan Membesar
● Indeks ke-3: 3 sebagai pembanding● Perbandingan ke depan (dengan indeks dirinya-1): 6
5
3
1 8 7 2 46
Proses: Pengurutan Membesar
● 3 < 6, geser posisi 6● Bandingkan kembali ke depan (dengan indeks dirinya-
2): 5
5
3
1 8 7 2 46
Proses: Pengurutan Membesar
● geser posisi 5● Karena tidak ada yang dibandingkan kembali, sisipkan
3 di posisi terakhir perbandingan yang didapatkan● …● dst
5 4 8 7 2 163
5
3
4 8 7 2 163
procedure insertionSort( Output/Input A : list of sortable items ) for i = 1 to length[A]-1 do begin value = A[i]; j = i-1; done = false; repeat if A[j] > value A[j+1] = A[j]; j = j-1; if j < 0 done = true; else done = true; until done; A[j+1] = value; end
Pseudocode
#include <iostream>using namespace std;void insertionSort(int arr[], int length) { int i, j ,tmp; for (i = 1; i < length; i++) { j = i; while (j > 0 && arr[j - 1] > arr[j]) { tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; j--; } }}int main(){ int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; insertionSort(numbers, 10); for (int i = 0;i<10;i++) cout << numbers[i] << " | ";}
Kode C++
Kompleksitas
Worst Case O(n²)
Best Case O(n)
Average Case O(n²)