Source Code Program Buuble Sort ascending dan descending

Source Code Program Buuble Sort Ascending dan Descending

Bubble Sort adalah suatu jenis algoritma sorting yang digunakan untuk mengurutkan sebuah data atau amgka, pengurutan dapat dilakukan secara ascending (kecil ke besar) maupun descending (besar ke kecil). Algoritma ini bekerja menggunakan prinsip Buuble atau permen karet, dimana proses berjalannya algoritma tersebut dengan cara membandingkan satu persatu nilai dari baris pertama sampai dengan baris terakhir. Jika program dirancang untuk melakukan sorting secara ascending maka nilai yang terkecil akan diletakan di paling awal urutan bilangan  atau diletakan pada bagian paling kiri urutan dan bilangan yang lebih besar berada di sebelah kanan bilangan yang terkecil. Untuk sistem descending berkebalikan dengan sistem ascending, sistem descending meletakan bilangan terbesar dibagian awal dan nilai yang lebih kecil mengikuti dibagian kanan.


1. Ascending

Berikut adalah contoh source buuble sort ascending dengan 10 inputan nilai :

#include <iostream>
#include <chrono>
using namespace std;
int main()
{
    int nilai[10] = {84,87,78,16,94,36,87,93,50,22};
    int n = (sizeof(nilai)/sizeof(*nilai))-2;

    auto start = chrono::high_resolution_clock::now();
    
    for(int a=0; a<=n-1; a++)
    {
        for(int b=0; b<=n-a; b++)
        {
            if(nilai[b]>nilai[b+1])
            {
                swap(nilai[b],nilai[b+1]);
            }
        }
    } 
    auto finish = chrono::high_resolution_clock::now();
    cout << "Running Time : " << chrono::duration_cast<chrono::nanoseconds>(finish-start).count() << " nanoSeconds\n";
}

kata kunci dalam algoritma terdapat pada code if(nilai[b]>nilai[b+1]) , apabila nilai dari bilangan disebelah kiri lebih besar dari bilangan disamping kanannya maka code yang akan dijalankan yaitu swap(nilai[b],nilai[b+1]); menukar nilai yang berada disebelah kiri ke nilai yang disebelah kanan, sehingga nilai yang kecil berada di bagian sebelah kiri urutan.

2. Descending

Berikut adalah contoh source buuble sort ascending dengan 10 inputan nilai :

#include <iostream>
#include <chrono>
using namespace std;
int main()
{
    int nilai[10] = {84,87,78,16,94,36,87,93,50,22};
    int n = (sizeof(nilai)/sizeof(*nilai))-2;

    auto start = chrono::high_resolution_clock::now();
    
    for(int a=0; a<=n-1; a++)
    {
        for(int b=0; b<=n-a; b++)
        {
            if(nilai[b]<nilai[b+1])
            {
                swap(nilai[b],nilai[b+1]);
            }
        }
    } 
    auto finish = chrono::high_resolution_clock::now();
    cout << "Running Time : " << chrono::duration_cast<chrono::nanoseconds>(finish-start).count() << " nanoSeconds\n";
}

kata kunci dalam algoritma terdapat pada code if(nilai[b]<nilai[b+1]) , apabila nilai dari bilangan disebelah kiri lebih kecil dari bilangan disamping kanannya maka code yang akan dijalankan yaitu swap(nilai[b],nilai[b+1]); menukar nilai yang berada disebelah kiri ke nilai yang disebelah kanan, sehingga nilai yang besar berada di bagian sebelah kiri urutan.


tidak terdapat banyak perbedaan pada ascending maupun descending pada algoritma bubble sort yang membedakan hanyalah dibagian perbandingan nya if(nilai[b]<nilai[b+1])
sistem ascending menggunakan tanda > dan sistem descending menggunakan tanda <. Selain itu source code yang ditulis sama antara program ascending dengan descending.

Semoga bermanfaat ,
Previous
Next Post »