Analisis Perbandingan Algoritma Pengurutan/Sorting

Tugas mahasiswa di sini adalah melakukan pembandingan untuk membandingkan algoritma pengurutan. Anda harus mencoba menjalankan setidaknya empat metode pengurutan dengan kumpulan data integer sebanyak:

  • 10.000
  • 20.000
  • 100.000
  • 200.000
  • 1.000.000 dan
  • 2.000.000 item, masing-masing 10 kali:
    1. kumpulan data acak (random)
    2. kumpulan data menurun (worst-casae)
    3. set data naik (best-case)

Algoritma yang digunakan

  1. Selection Sort
  2. Insertion Sort or Bubble Sort
  3. Merge Sort or Heap Sort
  4. Quick Sort

Pilih bahasa:

  • Python, Java, C/C++, PHP, Golang, Rust dll

  • Tugas kelompok terdiri dari 3 mahasiswa.

  • Anda harus menghentikan program untuk uji coba pertama metode penyortiran apa pun yang memerlukan waktu lebih dari 15 menit untuk dijalankan dan melaporkan hasil ini.

  • Jika algoritme pengurutan membutuhkan waktu terlalu lama untuk satu uji coba, misalnya untuk 100.000 item, maka tidak perlu menyelesaikan uji coba untuk kumpulan data yang lebih besar, cukup laporkan ukuran kumpulan data yang algoritme tersebut mulai memakan waktu terlalu lama.

  • Anda harus mengirimkan laporan dengan hasil dan kesimpulan Anda tentang percobaan. Laporan Anda harus menjelaskan bagaimana Anda melakukan percobaan.

  • Selain itu, laporan Anda harus menyertakan tabel yang berisi data dari aspek kerangka kerja penelitian secara keseluruhan dan data yang Anda kumpulkan. Laporan Anda juga harus berisi bagan yang secara visual menjelaskan interpretasi Anda atas hasil yang diwakili bagan tersebut.

  • Terakhir, laporan Anda harus meringkas temuan Anda

Unggah yang berikut ini:

  • Laporan Anda sebagai LaTeX atau Word Processing Document (docX). Dokumen tersebut diformat dan disusun seperti publikasi jurnal kertas IEEE.
    • Kode apa pun yang digunakan untuk Membuat Data untuk Laporan dalam File Kontainer Zipped
    • Presentasi powerpoint

Contoh implementasi algoritma pengurutan dengan bahasa PHP:

<?php // Function to sort an array using insertion sort function insertionSort(&$arr, $n) { for ($i = 1; $i < $n; $i++) { $key = $arr[$i]; $j = $i-1;

    // Move elements of arr[0..i-1], 
    // that are greater than key, to 
    // one position ahead of their 
    // current position 
    while ($j >= 0 && $arr[$j] > $key) 
    { 
        $arr[$j + 1] = $arr[$j]; 
        $j = $j - 1; 
    }       
    $arr[$j + 1] = $key; 
} 

}

function selectionSort(&$arr, $n) { }

function quickSort(&$arr, $n) {

}

function mergeSort(&$arr, $n) {

}

// A utility function to print an array of size n function printArray(&$arr, $n) { for ($i = 0; $i < $n; $i++) echo $arr[$i]." "; echo "\n"; }

//generate 20.000 items random for($i=1;$i<=20000;$i++) { $arr[] = rand(1,20000); }

$n = sizeof($arr);

insertionSort($arr, $n);

printArray($arr, $n);

?>