rulururu





post SORTING ALGORITHM ANALYSIS

June 30th, 2007

Filed under: Algorithms — Unggul_USA @ 7:34 pm — View blog reactions


Tujuan
Tujuan dari analisa algorithma adalah untuk mengetahui efisiensi algoritma dalam hal ini yang akan dibahas adlah algorithma sorting “quick sort” terhadap algoritma “selection sort”. Analisis dilakukan dengan membandingkan running time ( waktu komputasi ) antara algoritma “quick sort” terhadap algorithma “selection sort” dan jumlah proses/langkah/pembandingan data antara algoritma “quick sort” terhadap algorithma “selection sort”. Hasil analisis yang dapat adalah jumlah running time (waktu komputasi) dan jumlah proses/langkah/pembandingan data/proses untuk masing-masing algoritma.

TAHAP ANALISIS
Tahap awal analisis adalah melakukan pengecekan program untuk memastikan bahwa program telah benar secara logika maupun sintak ( tahap tracing/debugging), Tahap selanjutnya yaitu menjalankan program untuk mengetahui running time/waktu komputasi ( termasuk jumlah langkah ).
Data uji yang digunakan adalah data yang tidak terurut/random, terurut membesar/ascending, dan terurut mengecil/descending.

SELECTION SORT
PSEUDOCODE

    For I in 1..N-1 loop

      Pos = I
      For J in I+1..N loop

        If item in position J is < (or > ) item in Pos then Pos = J

      end loop
      If Pos /= I then swap elements in positions I and Pos

    end loop

ANALISIS ALGORITMA DAN KOMPLEKSITAS
Pengurutan dengan pemilihan ini dilakukan dengan cara mencari suatu nilai ekstrim ( minimal /maksimal ) untuk ditukarkan dengan elemen terujung yang ada pada suatu loop proses. Kemudian elemen terujung tidak lagi diikutkan dalam proses pengurutan selanjutnya karena elemen terujung tersebut sudah merupakan data yang minimal/maksimal dalam proses pengurutan tahap 1. Proses selanjutnya dilakukan untuk data yang tersisa dalam array.
Misalnya array tersebut adalah X, maka pada setiap saat terdapat i buah data terurut pada X[0], X[1], …, X[i-1], dan data tak terurut pada X[i], X[i+1], …, X[n-1]. Algoritma melakukan pencarian X[j] terkecil dari data set yang belum terurut tersebut, misalnya didapat X[m] lalu melakukan penukaran X[i] dengan X[m] sehingga kemudian sudah terurut i+1 buat data dalam X.
Hasil pengurutan data ( mengecil/membesar ) bergantung dari nilai ektrim yang kita inginkan. Jika yang kita cari adalah nilai ektrim terkecil maka kita dapatkan array yang terurut membesar, dan begitupun sebaliknya.

ssort.PNG

Jadi total running timenya adalah:
c * n * n = cn2 = O(n^2)

QUICK SORT
PSEUDOCODE

    Function QuickSort (Array(First..Last))

      if Array contains only one element then return Array;

        //Partitioning step
        Choose a pivot and put swap it with Array[First];
        LeftPtr = First + 1;
        RightPtr = Last;
        while (RightPtr > = LeftPtr)
        while (Array[LeftPtr] < Pivot)
        increment LeftPtr;
        while (Array[RightPtr] > Pivot)
        decrement RightPtr;
        swap Array[LeftPtr] and Array[RightPtr];
        swap Array[First] and Array[RightPtr];
        //End partitioning step
        Array[First..RightPtr-1] = QuickSort(Array[First .. RightPtr-1]);
        Array[RightPtr+1..Last] = QuickSort(Array[RightPtr+1..Last]);

ANALISIS ALGORITMA DAN KOMPLEKSITAS
Sesuai namanya “Quick Sort”, adalah algorithma sorting tercepat di dalam proses sorting. “Quick Sort” menggunakan “divide-and-conquer recursive algorithm”.
Algorithma dasar dalam yang dipakai untuk mengurutkan sebuah array S terdiri dari empat tahap, yaitu :

  • Jika jumlah elemen S 0 atau 1, berhenti.
  • Ambil secara acak elemen v di dalam array S. Ini yang disebut pivot.
  • Bagi menjadi 2 bagian array S, elemen selain v, menjadi 2 qroup : S1 = {x  S – {v}  x ≤ v } dan S2 = {x  S – {v}  x ≥ v }
  • Lakukan quick sort pada S1 dan diikuti S2
    • Sehingga didapat persamaan :
      T(n) = 2T(n/2) + θ(n)
      Notasi 0 / Big O dapat dihitung dengan metode master :
      T(n) = 2T(n/2) + θ(n)  a = 2, b = 2 dan f(n) = θ(n) = n
      n logba = n log22 = n
      sehingga sesuai dengan kasus 2 teorema master, karena :
      n logba = n = f(n)
      jadi total running timenya adalah :
      T(n) = θ(n lg n).

Lebih detail tantang uji unjuk kerja silahkan akses disini.

Inlinks :

(No Ratings Yet)
4,850 Views

14 Comments »

  1. boleh?? minta program algoritma untuk menghitung kompleksitas waktu dari macam2 sorting??? dikirim ke email diatas… terimakasih

    Comment by leeche — November 18, 2007 @ 1:58 pm

  2. program saya dalam versi power builder. gimana? mau? kayak iklan 3 aja ya. he he he

    Comment by admin — November 19, 2007 @ 10:36 am

  3. cara hitung kompleksitas nya gmn yah??
    btw, bisa ga dicantumkan algoritma Heap, Merge gt?

    Thanks

    Comment by virus — November 20, 2007 @ 9:42 am

  4. sedang dibuat artikel tentang heap dan merge sort. sabar ya.

    Comment by admin — November 20, 2007 @ 9:56 am

  5. Boleh nggak saya minta listing prgram quicksort dan contoh penggunaan secara aplikasi

    Comment by kunjung wahyudi — November 23, 2007 @ 8:16 am

  6. quick-sort source-code : http://ilmu-komputer.net/algorithms/quick-sort-source-code/

    Comment by admin — November 27, 2007 @ 2:33 pm

  7. Mas2… Klo bwad Sorting accending dan deccending gimana y ??? mohon dobalas y….

    Comment by Tista — December 27, 2007 @ 4:56 pm

  8. wah sekilas membingungkan buat kuh..

    tapi reverensi itu stelah dibaca dan diaplikasiin di program yang ku buat jadi mudah juga ya.. thanks ya!

    Comment by diki dewanto — January 1, 2008 @ 1:43 pm

  9. coba buka http://ilmu-komputer.net/algorithms/quick-sort-source-code/
    terdapat 2 baris yaitu :
    1. while ((numbers[right] >= pivot) && (left < right))
    2. while ((numbers[left] <= pivot) && (left < right))
    Coba ubah ke duanya, yaitu pada >= dan < =,
    misal menjadi <= dan >=. Cek hasilnya.

    Comment by admin — January 3, 2008 @ 10:38 am

  10. wah2 asik2 jd membantu tugas alpro ku
    asli kaga ngerti aq ama yg namanya alpro

    tq2

    Comment by ciple — March 21, 2008 @ 10:47 am

  11. boleh minta program kuis atau program konversi? cari dimana ya?

    Comment by daii — April 20, 2008 @ 3:04 pm

  12. Maaf, maksudnya konversi apa ya?

    Comment by Unggul_USA — April 21, 2008 @ 9:38 am

  13. gmana sich caranya bwat prosedur pseudocode.. ? bisa minta contohnya ga bwat prosedur simpan,cari,edit,dan hapus..?bales ya….penting

    Comment by elza — June 16, 2008 @ 1:27 pm

  14. salam untuk penulis .
    saya ahmad ,mahasiswa salah satu PT di Bandung
    kebetulan TA saya mengenai kriptografi “analisis 2 metode MMB dan RC 6″
    ingin meminta tolong ke penulis referensi bwt analisis kompleksitas waktu dan ruang 2 metode tersebut dan uji keamanan algoritmanya.
    terima kasih.
    jawaban anda sangat membantu saya.

    Comment by ahmad — June 18, 2008 @ 9:20 am

RSS feed for comments on this post. TrackBack URI

Leave a comment

Most Viewed Post/Page:

  • Tips : Mengatasi Komputer Bermasalah - 15,498 Views
  • Tips : Membuat Jaringan Wi-Fi - 6,728 Views
  • Download - 6,076 Views
  • Memilih Anti Virus - 5,214 Views
  • Apa itu Multimedia ? - 5,199 Views
  • SORTING ALGORITHM ANALYSIS - 4,850 Views
  • Tips : Merawat Komputer - 3,766 Views
  • Sejarah Kriptografi - 3,589 Views
  • Database - 3,366 Views
  • Power Builder 11.0 Launching - 3,360 Views
  • Most Rated Post/Page:

  • Tips : Membuat Jaringan Wi-Fi - 8 Votes
  • Tips : Mengatasi Komputer Bermasalah - 7 Votes
  • Download - 5 Votes
  • Tips : Komputer Aman Dari Virus - 5 Votes
  • Memilih Anti Virus - 4 Votes
  • Menjalankan Banyak Account Yahoo Messenger - 3 Votes
  • Aplikasi Web Atau Aplikasi Desktop ? - 3 Votes
  • Aplikasi Untuk Amankan Data Penting - 3 Votes
  • Tips : Merawat Komputer - 2 Votes
  • Database #2 - 2 Votes
  • ruldrurd
    porn movies buy online pharmacy viagra soft tabs viagra or levitra order cialis soft tabs online information on viagra for woman cheap cialis soft tabs levitra cheap generic viagra online viagra levitra purchase uk free cialis order online cialis cream for women levitra for women online viagra soft tabs
    Powered by WordPress, Web Design by Laurentiu Piron
    Entries (RSS) and Comments (RSS)