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.
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
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
Post a Comment