Langsung ke konten utama

SORTING

Definisi Sorting
Sorting adalah proses yang mengatur sekumpulan objek/data sehingga nilainya tersusun, baik itu dari kecil ke besar (ascending) atau dari besar ke kecil (descending). Disini saya akan membahasa tentang.
  • ·         Bubble sort
  • ·         Merge sort
  • ·         Quick sort
Bubble Sort  
Bubble Sort adalah algoritma pengurutan paling sederhana yang bekerja dengan berulang kali menukar elemen yang berdekatan jika urutannya salah.
Contoh:
Pass Pertama:
(5 1 4 2 8) -> (1 5 4 2 8)
Di sini, algoritma membandingkan dua elemen pertama, dan bertukar sejak 5> 1.
(1 5 4 2 8) -> (1 4 5 2 8), Tukar sejak 5> 4
(1 4 5 2 8) -> (1 4 2 5 8), Tukar sejak 5> 2
(1 4 2 5 8) -> (1 4 2 5 8),
Sekarang, karena elemen-elemen ini sudah berurutan (8> 5), algoritma tidak menukar mereka.
Pass Kedua:
(1 4 2 5 8) -> (1 4 2 5 8)
(1 4 2 5 8) -> (1 2 4 5 8), Tukar sejak 4> 2
(1 2 4 5 8) -> (1 2 4 5 8)
(1 2 4 5 8) -> (1 2 4 5 8)
Sekarang, array sudah diurutkan, tetapi algoritma kami tidak tahu apakah itu selesai. Algoritme membutuhkan satu pass penuh tanpa swap apa pun untuk mengetahuinya.
Lulus Ketiga:
(1 2 4 5 8) -> (1 2 4 5 8)
(1 2 4 5 8) -> (1 2 4 5 8)
(1 2 4 5 8) -> (1 2 4 5 8)
(1 2 4 5 8) -> (1 2 4 5 8


Merge sort 
Merge sort adalah algoritma Divide and Conquer . Ini membagi array input dalam dua bagian, memanggil dirinya untuk dua bagian dan kemudian menggabungkan dua bagian yang diurutkan. Fungsi gabungan () digunakan untuk menggabungkan dua bagian. Penggabungan (arr, l, m, r) adalah proses utama yang mengasumsikan bahwa arr [l..m] dan arr [m + 1..r] diurutkan dan menggabungkan dua sub-array yang diurutkan menjadi satu. Lihat implementasi C berikut untuk detailnya.

MergeSort (arr [], l, r)
 
 Jika r> l
      1. Temukan titik tengah untuk membagi array menjadi dua bagian:  
              tengah m = (l + r) / 2
      2. Panggil mergeSort untuk babak pertama:   
              Panggil mergeSort (arr, l, m)
      3. Panggil mergeSort untuk babak kedua:
              Panggil mergeSort (arr, m + 1, r)
      4. Gabungkan dua bagian yang diurutkan dalam langkah 2 dan 3:
              Panggil gabungan (arr, l, m, r) 

Diagram berikut menunjukkan proses pengurutan gabungan lengkap untuk contoh array {38, 27, 43, 3, 9, 82, 10}. Jika kita melihat lebih dekat pada diagram, kita dapat melihat bahwa array secara rekursif dibagi menjadi dua bagian sampai ukuran menjadi 1. Setelah ukuran menjadi 1, proses penggabungan mulai bekerja dan mulai menggabungkan array kembali hingga array lengkap menjadi bergabung.



Quick sort
QuickSort adalah algoritma Divide and Conquer. Itu mengambil elemen sebagai pivot dan mempartisi array yang diberikan di sekitar pivot yang dipilih. Ada banyak versi quickSort yang memilih pivot dengan berbagai cara.
1.      Selalu pilih elemen pertama sebagai pivot.
2.      Selalu pilih elemen terakhir sebagai pivot (diterapkan di bawah)
3.      Pilih elemen acak sebagai pivot.
4.      Pilih median sebagai poros.
Proses utama dalam quickSort adalah partisi (). Target dari partisi adalah, diberikan array dan elemen x array sebagai pivot, letakkan x pada posisi yang benar dalam array yang diurutkan dan letakkan semua elemen yang lebih kecil (lebih kecil dari x) sebelum x, dan letakkan semua elemen yang lebih besar (lebih besar dari x) setelah x. Semua ini harus dilakukan dalam waktu linier.
Kode Pseudo untuk fungsi QuickSort rekursif:


 / * rendah -> Indeks awal, tinggi -> Indeks akhir * /
 quickSort (arr [], rendah, tinggi)
 {
     jika (rendah <tinggi)
     {
         / * pi adalah indeks partisi, arr [pi] sekarang
            di tempat yang tepat * /
         pi = partisi (arr, rendah, tinggi);

         quickSort (arr, low, pi - 1);  // Sebelum pi
         quickSort (arr, pi + 1, tinggi);  // Setelah pi
     }
 }


Komentar

Postingan populer dari blog ini

IDE.Visual Basic.Net

IDE Visual Basic .NET     1.1    Pengertian Visual Basic Visual Basic merupakan bahasa pemrograman yang sangat mudah dipelajari, dengan teknik pemrograman visual yang memungkinkan penggunanya untuk berkreasi lebih baik dalam menghasilkan suatu program aplikasi   1.2    Pengenalan Visual Basic 1.        Visual Basic adalah salah satu bahasa pemrograman. 2.        Bahasa pemrograman adalah perintah-perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. 3.        Dikembangkan oleh Microsoft pada tahun 1991 4.        Merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) 5.        Bahasa BASIC diciptakan oleh Professor John Kemeny dan Thomas Kurtz dari Kampus Darmouth pada pertengahan tahun 1960-an (Deitel&Deitel, 1999)   Apa itu Visual? 1.        VISUAL adalah cara yang digunakan untuk membuat Graphical User Interface (GUI) 2.        Tidak perlu menuliskan intruksi pemrograman dalam kode

PERCABANGAN

Statemen ini digunakan untuk melakukan aksi setelah melakukan pengujian terhadap suatu kondisi. Pernyataan dalam blok statemen hanya akan dilaksanakan ketika kondisi pengetesan/pengujian bernilai benar. Statement If...Then memiliki beberapa sintaks/cara penulisan sesuai dengan jumlah pernyataan yang akan dieksekusi. 1.        If...Then dengan Kondisi dan Pernyataan Tunggal Text Box: If <kondisi> Then <Pernyataan> Contoh :If Nilai >= 60 Then Keterangan = “Lulus”  2.        If...Then dengan Pernyataan Jamak Text Box: If <Kondisi> Then<Pernyataan_1><Pernyataan_2>..<Pernyataan_n> End If Contoh :If Nilai >= 60 Then Keterangan = “Lulus” Ucapan = “Selamat”End If 3.        If...Then dengan 2 kondisi Text Box: <Pernyataan_Jika_Kondisi_Benar> Else<Pernyataan_Jika_Kondisi_Salah> End If Contoh:If Nilai >= 60 Then Keterangan = “Lulus” Ucapan = “Selamat”ElseKeterangan

TI POLITA ALPRO1 1C

PERULANGAN 1.        Peerulangan Fungsi For Bagian-bagian perulangan dalam fungsi for: a.       Start  adalah kondisi pada saat awal perulangan. kondisi awal ini digunakan untuk membuat dan memberikan nilai kepada variabel yang digunakan untuk mengontrol perulangan. b.       Increment  adalah bagian yang digunakan untuk memproses variabel agar bisa memenuhi kondisi akhir perulangan. Umumnya nilai variable tersebut bertambah (i++) / berkurang (i--) 1 (satu). c.        Condition  adalah kondisi yang harus dipenuhi agar perulangan dijalankan. Selama kondisi ini terpenuhi, maka C++ akan terus melakukan perulangan. d.       Statement  adalah bagian kode program yang akan diproses secara terus-menerus selama proses perulangan berlangsung. Kita membuat blok program di antara tanda kurung kurawal ({ dan }) sebagai penanda bahwa bagian di dalam kurung kurawal inilah yang akan dikenai proses perulangan. Rumus perulangan for: For(start; condition; increment) Con