Page 39 - karlina Ebook
P. 39
Kasus 2: Insertion Sort
void insertion_sort (int arr[], int length){
int j, temp;
for (int i = 0; i < length; i++){
j = i;
while (j > 0 && arr[j] < arr[j-1]){
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
j--;
}
}
}
Kasus 3: Selection Sort
void selectSort(int arr[], int n)
{
//pos_min adalah posisi terpendek dari nilai minimum
int pos_min,temp;
for (int i=0; i < n-1; i++)
{
pos_min = i;
//set pos_min menjadi current index of array
for (int j=i+1; j < n; j++)
{
if (arr[j] < arr[pos_min])
pos_min=j;
//pos_min akan menyimpan indeks yang mengandung nilai paling
minimum, hal ini dibutuhkan ketika proses swap terjadi
}
//jika pos_min tidak lagi sama dengan i maka nilai yang lebih
kecil harus ditemukan, maka sebuah pertukaran harus terjadi
if (pos_min != i)
{
temp = arr[i];
arr[i] = arr[pos_min];
arr[pos_min] = temp;
}
}
}
36

