Metoda Pengurutan Quick Sort Dengan Bahasa C++ - Amazing Indonesia

Latest

Thursday 3 November 2011

Metoda Pengurutan Quick Sort Dengan Bahasa C++


 Pada pembahasan sebelumnya Anda telah mengetahui bahwa setidaknya ada dua metoda pengurutan yang populer, yaitu Bubble Sort dan Quick Sort. Sengaja metoda Bubble Sort dipilih untuk dibahas terlebih dahulu karena logikanya mudah untuk diikuti.
            Nah, sekarang kita menginjak pada metoda pengurutan yang kedua yaitu Quick Sort. Metoda ini mungkin memang tidak semudah Bubble Sort, akan tetapi unggul dalam segi kecepatan, terutama apabila ada banyak data yang harus diurutkan.
            Sebelum kita menginjak pada pembahasan tentang program pengurutan dengan metoda Quick Sort, terlebih dahulu akan diberikan ilustrasi terlebih dahulu.
            Katakanlah Anda memiliki 7 buah angka yang harus diurutkan, yaitu 5, 1, 3, 10, 8, 6, dan 7. Lihat ilustrasi pada gambar 1. Dengan menggunakan metoda Quick Sort, langkah pertama yang harus diambil adalah menentukan elemen pivot. Elemen pivot adalah suatu data yang dipilih untuk menjadi dasar acuan dalam pengurutan data. Elemen ini boleh diambil sembarang, salah satu dari ketujuh data tersebut. Dalam contoh ini akan diambil angka 7 sebagai elemen pivot. Lihat ilustrasi pada gambar 2.
            Langkah berikutnya adalah melakukan pembandingan seluruh elemen yang ada dengan elemen pivot tersebut. Sebagai hasil dari pembandingan tersebut, bilangan yang lebih kecil daripada elemen pivot akan diletakkan di sebelah kiri elemen pivot dan bilangan yang lebih besar daripada elemen pivot diletakkan di sebelah kanan elemen pivot. (Kasus ini berlaku untuk pengurutan dari bilangan terkecil ke bilangan terbesar atau ascending).
            Proses pembandingan ini dapat dilakukan dari dua arah, yaitu dari arah kiri dan dari arah kanan. Nantinya dalam program, gerakan dari arah kiri akan dinotasikan dengan huruf i dan gerakan dari arah kanan akan dinotasikan dengan huruf j. Lihat ilustrasi pada gambar 3. Apabila elemen i memiliki nilai lebih besar daripada elemen pivot dan elemen j memiliki nilai lebih kecil daripada elemen pivot, maka kedua elemen ini ditukar letaknya. Proses ini akan dilakukan terus hingga kedua arah gerakan bertemu di suatu titik tertentu. Lihat ilustrasi pada gambar 4. (Perhatikan bahwa letak urutan angka telah berubah). Selanjutnya letak elemen pivot ditukar dengan letak titik temu tersebut. Lihat ilustrasi pada gambar 5. Hasil akhir proses ini terlihat pada gambar 6.
            Perhatikan baik-baik gambar 6 tersebut. Pada keadaan tersebut, seluruh bilangan yang terletak di sebelah kiri elemen pivot bernilai lebih kecil daripada elemen pivot dan seluruh bilangan yang terletak di sebelah kanan elemen pivot bernilai lebih besar daripada elemen pivot. Jumlah elemen yang terletak di sebelah kiri dan kanan tidak harus sama.
            Sekalipun sekarang seluruh bilangan yang terletak di sebelah kiri elemen pivot bernilai lebih kecil daripada elemen pivot dan seluruh bilangan yang terletak di sebelah kanan elemen pivot bernilai lebih besar daripada elemen pivot, namun bilangan-bilangan tersebut masih belum berurutan. Jadi proses Quick Sort harus dilakukan lagi untuk bilangan yang terletak di sebelah kiri elemen pivot dan di sebelah kanan elemen pivot. Proses ini akan terus berlangsung hingga seluruh bilangan akan terurut.

Source Code dan Artikelnya DOWNLOAD DISINI

No comments:

Post a Comment