Langkah-Langkah Pengurutan Insertion Sort

Insertion sort adalah metode pengurutan data dengan cara membandingkan 2 data pertama , diurutkan, lalu diperiksa.

Untuk lebih jelasnya, berikut proses Insertion Sort :

• Langkah pengurutan

0123456
21520513257
Diberikan sebuah array bilangan : 2,15,20,5,13,25,7 diurutkan secara ascending (terkecil-terbesar)
  1. Proses 1
TempCekGeser
15Temp > 2

         Menghasilkan :

0123456
21520513257
  • Proses 2
TempCekGeser
20Temp > 15
20Temp > 2

Menghasilkan :

0123456
21520513257
  • Proses 3
TempCekGeser
5 Temp < 20Data ke-2 posisi 3  
5Temp < 15Data ke-1 posisi 2  
5Temp > 2–    

    Menghasilkan :

0123456
25152013257
  • Proses 4
TempCekGeser
13 Temp < 20Data ke-3 posisi 4  
13Temp < 15Data ke-2 posisi 3  
13Temp > 5–    

    Menghasilkan :

0123456
25131520257
  • Proses 5
TempCekGeser
25 Temp > 20
25Temp > 15
25Temp > 13
25Temp > 5
25Temp > 2–  

          Menghasilkan :

0123456
25131520257
  • Proses 6
TempCekGeser
7Temp < 25Data ke-5 posisi 6
7Temp < 20Data ke-4 posisi 5
7Temp < 15Data ke-3 posisi 4
7Temp < 13Data ke-2 posisi 3
7Temp > 5–  

     Menghasilkan :

25131520257
Array setelah diurutkan

Notasi Algoritmik Insertion Sort :

Implementasi dengan C:

#include <math.h>
#include <stdio.h>

//Program insertion sort
void insertionSort(int arr[], int n)
{
    int a, i, temp, j;
    for (i = 1; i < n; i++) {
        temp = arr[i];
        j = i - 1;
        while (j >= 0 && temp < arr[j]) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = temp;
        for(a = 0; a < n; a++){
            printf("%d ", arr[a]);
        }
        printf("\n");
    }
}

//Driver program
int main(){
    int arr[100];
    int n,a;
    
    //Input panjang array
    printf("Masukkan panjang array : ");
    scanf("%d", &n);
    
    //Input elemen array
    printf("Masukkan elemen array: \n");
    for(a = 0; a < n; a++){
        scanf("%d", &arr[a]);
    }
    
    //Array urut
    printf("\n Langkah-langkah pengurutan : \n");
    insertionSort(arr, n);
    
    return 0; 
}

Share Now:

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Langganan

Subscribe To Our Newsletter

0
Would love your thoughts, please comment.x
()
x