Insertion Sort & Quick Sort

Insertion Sort
Insertion Sort bekerja seperti banyak orang yang sedang mengurutkan kartu di tangan. Dimulai dengan tangan kiri yang kosong dan kartunya tertumpuk di meja. Selanjutnya kita ambil satu persatu kartu di meja dan diletakkan di tangan kiri dengan posisi yang benar (terurut). Untuk menemukan posisi yang banar, maka kita harus membandingkan satu persatu kartu yang ada (di tangan kiri) secara berurutan.

  • Insertion Sort merupakan algoritma yang efisien untuk mengurutkan angka yang mempunyai jumlah elemen sedikit. Dimana:- Input : deretan angka sejumlah n buah
  • Output : permutasi (pengurutan) sejumlah n angka dari input yang sudah terurut secara ascending maupun descending 
  • Metode penyisipan (Insertion sort) bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array berhasil diurutkan.
  • Metode ini mengurutkan bilangan-bilangan yang telah dibaca; dan berikutnya secara
  • berulang akan menyisipkan bilangan-bilangan dalam array yang belum terbaca ke sisi kiri array yang telah terurut.

Imports System.Console
Module Module1 
    Sub main()
        Dim byk, k, l, m As Integer
        Write("Masukan Banyak angka : ")
        byk = ReadLine()
        WriteLine()

        Dim h(byk) As Integer
        For k = 1 To byk
            Write("Angka ke-{0} : ", k)
            h(k) = ReadLine()
        Next

        For k = 1 To byk
            l = h(k)
            m = k
            While m >= 1 And h(m - 1) > l
                h(m) = h(m - 1)
                m -= 1
            End While
            h(m) = l
        Next
        WriteLine()
        WriteLine("Hasil : ")
        For k = 1 To byk
            Write(h(k) & " ")
        Next
        ReadKey()
    End Sub
End Module

Quick Sort
Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data,  kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa

Imports System.Console
Module Module2
    Function partition(ByRef j As Array, ByVal k As Integer, ByVal l As Integer)
        Dim a As Integer = k
        Dim b As Integer = j(l)

        For i = k To l - 1
            If j(i) < b Then
                Dim tmp As Integer = j(i)
                j(i) = j(a)
                j(a) = tmp
                a = a + 1
            End If
        Next
        j(l) = j(a)
        j(a) = b

        Return a
    End Function
    Sub qsort(ByRef j As Array, ByVal k As Integer, ByVal l As Integer)
        If l > k Then
            Dim o As Integer = partition(j, k, l)
            qsort(j, k, o - 1)
            qsort(j, o + 1, l)
        End If
    End Sub

    Sub Main()
        Dim byk As Integer

        Write("Masukan Banyak Angka : ")
        byk = ReadLine()
        WriteLine()

        Dim c(byk - 1) As Integer
        Dim d As Integer

        For d = 0 To byk - 1

            Write("Angka ke-{0} : ", d + 1)
            c(d) = ReadLine()
            If c(d) = 0 Then
                Exit For
            End If
        Next
        byk = d
        WriteLine()
        WriteLine("Hasil : ")
        qsort(c, 0, byk - 1)
        For d = 0 To byk - 1
            Write(c(d) & " ")
        Next
        ReadKey()
    End Sub

End Module

Comments