2. 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.
3. Proses: Pengurutan Membesar
5
6 3 1 8 7 2 4
● Mulai dengan indeks ke-2: 5
● Perbandingan ke depan (dengan indeks dirinya-1): 6
4. Proses: Pengurutan Membesar
5
5 6 3 1 8 7 2 4
5 6 3 1 8 7 2 4
● 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. Proses: Pengurutan Membesar
5
3
6 1 8 7 2 4
● Indeks ke-3: 3 sebagai pembanding
● Perbandingan ke depan (dengan indeks dirinya-1): 6
6. Proses: Pengurutan Membesar
● 3 < 6, geser posisi 6
● Bandingkan kembali ke depan (dengan indeks dirinya-
2): 5
5
3
6 1 8 7 2 4
7. Proses: Pengurutan Membesar
3 5
6 4 8 7 2 1
3
● geser posisi 5
● Karena tidak ada yang dibandingkan kembali, sisipkan
3 di posisi terakhir perbandingan yang didapatkan
● …
● dst
3 5 6 4 8 7 2 1
8. Pseudocode
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
9. Kode C++
#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] << " | ";
}