Contoh Program Exchange Sort C++ dengan fitur Estimasi waktu proses Sorting

Berikut adalah contoh program sorting dengan C++ yang menggunakan metode Exchange Sort. Agak berbeda dengan yang ada pada umumnya, di source code ini aku tambahkan script yang dapat mengukur lamanya waktu saat proses Sorting, tentunya dengan data yang tidak sedikit baru estimasi / alokasi waktunya terlihat berapa detik proses sorting tersebut berlangsung.

#include<iostream>
#include<time.h>

/* =====================================
Program Sorting Data - Exchange Sort
- Rendra Kurniawan ( 06.2009.1.04900 )
========================================*/

using namespace std;

int main(int argc, char *argv[]){
    int nInput, i=0, j;
    cout << "Berapa banyak inputan angka yang Anda ingin input ? ";
    cin >> nInput;
    // cek apakah yang diinput benar angka
    if(!cin.fail()){
        int kumpulanAngka[nInput];
        int tempKumpulanAngka[nInput];
        int swapExchange;
        time_t awal, akhir;

        // proses input data dan simpan data
        for(i;i<nInput;i++){
            cout << "\nMasukkan angka ke - " << (i+1) << " : ";
            cin >> kumpulanAngka[i];
            if(cin.fail()){
                kumpulanAngka[i] = 0;
            }
            tempKumpulanAngka[i] = kumpulanAngka[i];
        }

        // proses sorting dengan metode exchange sort
        awal = time(NULL);
        for(i=0;i<nInput;i++){
            for(j=(i+1);j<nInput;j++){
                if(kumpulanAngka[i]>kumpulanAngka[j]){
                    swapExchange = kumpulanAngka[j];
                    kumpulanAngka[j] = kumpulanAngka[i];
                    kumpulanAngka[i] = swapExchange;
                }
            }
        }
        akhir = time(NULL);

        double lamaWaktu = akhir - awal;

        cout <<endl<<endl << "Kumpulan data sebelum diurutkan : "<<endl;
        for(i=0;i<nInput;i++){
            cout << tempKumpulanAngka[i] << " ";
        }
        cout <<endl<<endl << "Kumpulan data setelah diurutkan : "<<endl;
        for(i=0;i<nInput;i++){
            cout << kumpulanAngka[i] << " ";
        }
        cout <<endl<<endl << "Lama waktu yang dibutuhkan sorting sekitar " << lamaWaktu << " detik";
        cout <<endl<<endl;
    }else{
        cout << "Maaf, inputan harus berupa angka";
    }
    system("pause");
    return EXIT_SUCCESS;
}

Leave a Reply