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

REMASTERING LINUX UBUNTU

SEJARAH SISTEM OPERASI LINUX Pada tahun 1969, Ken Thompson dan Dennis Ritchie (juga adalah developer bahasa C), para peneliti di AT&T Bell Laboratorium Amerika, membuat sistem operasi UNIX, cikal bakal dari Linux. UNIX mendapatkan perhatian besar karena merupakan sistem operasi pertama yang dibuat bukan oleh hardware maker. Selain itu juga karena seluruh source code-nya dibuat dengan bahasa C, sehingga mempermudah pemindahannya ke berbagai platform. Dalam waktu singkat UNIX berkembang dalam dua jalur : UNIX yang dikembangkan oleh Universitas Berkeley dan yang dikembangkan oleh AT&T. Setelah itu mulai banyak perusahaan yang melibatkan diri, dan terjadilah persaingan yang melibatkan banyak perusahaan untuk memegang kontrol dalam bidang sistem operasi. Persaingan ini menyebabkan perlu adanya standarisasi. Dari sini lahirlah proyek POSIX yang dimotori oleh IEEE (The Institute of Electrical and Electronics Engineers) yang bertujuan untuk menetapkan spesifikasi standar

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