Anda di halaman 1dari 3

Kompleksitas Waktu Selection Sort

Kompleksitas Waktu, T(n), adalah jumlah operasi yang dilakukan untuk melaksanakan
algoritma dengan mengukur jumlah tahapan komputasi yang dibutuhkan untuk menjalankan
algoritma sebagai fungsi dari ukuran masukan n.

Maka, dalam mengukur kompleksitas waktu dihitunglah banyaknya operasi yang


dilakukan oleh algoritma. Idealnya, kita memang harus menghitung semua operasi yang ada
dalam suatu algoritma. Namun, untuk alasan praktis, cukup menghitung jumlah operasi abstrak
yang mendasari suatu algoritma. Operasi abstrak ini disebut Operasi Dasar.

Pada algoritma pengurutan, terutama pada pengurutan dengan perbandingan, operasi


dasar adalah operasi operasi perbandingan elemen-elemen suatu larik dan operasi pertukaran
elemen. Kedua hal itu dihitung secara terpisah, karena jumlah keduanya berbeda.
Jika kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan T(n), dan
memenuhi
T(n) ≤ C(f(n))
untuk n ≥ n0, maka kompleksitas dapat dinyatakan dengan
T(n) = O(f(n)).
Algoritma di dalam Selection Sort terdiri dari kalang bersarang. Dimana kalang tingkat pertama
(disebut pass) berlangsung N-1 kali. Di dalam kalang kedua, dicari elemen dengan nilai terkecil.
Jika didapat, indeks yang didapat ditimpakan ke variabel min. Lalu dilakukan proses penukaran.
Begitu seterusnya untuk setiap Pass. Pass sendiri makin berkurang hingga nilainya menjadi
semakin kecil. Berdasarkan operasi perbandingan elemennya:

Berarti kompleksitasnya secara simptotik adalah O(n2 ). Adapun grafik efisiensi selection sort
dapat dilihat pada tabel dibawah ini

Pengurutan model ini tergolong buruk dan lebih baik dihindari penggunaannya, terutama untuk
penanganan tabel dengan lebih dari 1000 elemen.
Algoritma Selection sort
 
procedure Urut(input/output a1, a2, …, an : integer)
Deklarasi

i, j, imaks, temp : integer


 

Algoritma

for i=n downto 2 do   { pass sebanyak n – 1 kali }


imaks=1

for j=2 to i do
if aj > aimaks then
imaks=j

endif
endfor
{ pertukarkan aimaks dengan ai }
temp=ai
ai=aimaks
aimaks=temp
 

endfor
 

a.  Jumlah operasi perbandingan element. Untuk setiap pass ke-i


          i  = 1 –>  jumlah perbandingan  = n – 1
        i = 2 –>  jumlah perbandingan = n – 2
        i = 3  –> jumlah perbandingan = n – 3
:

        i = k –>  jumlah perbandingan = n – k


:

        i = n – 1  –> jumlah perbandingan = 1

Jumlah seluruh operasi perbandingan elemen-elemen larik adalah    


T(n) = (n – 1) + (n – 2) + … + 1
Ini adalah kompleksitas waktu untuk kasus terbaik dan terburuk, karena algoritma Urut
tidak bergantung pada    batasan apakah data masukannya sudah terurut atau acak.

b.  Jumlah operasi pertukaran

Untuk setiap i dari 1 sampai n – 1, terjadi satu kali pertukaran elemen, sehingga jumlah
operasi pertukaran seluruhnya   adalah   T(n) = n – 1.

Jadi, algoritma pengurutan maksimum membutuhkan n(n – 1 )/2 buah operasi


perbandingan elemen dan n – 1  buah operasi pertukaran.
Kompleksitas Waktu Asimtotik Selection Sort

Biasanya kompleksitas algoritma dinyatakan secara asimptotik dengan notasi big-O. Jika
kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan T(n), dan memenuhi
T(n) ≤ C(f(n))
untuk n ≥ n0, maka kompleksitas dapat dinyatakan dengan
T(n) = O(f(n)).
Terdapat 2 jenis penggunaan notasi Big O, yaitu :
1. Infinite asymptotics
2. Infinitesimal asymptotics
Perbedaan kedua jenis penggunaan notasi ini hanya pada aplikasi. Sebagai contoh, pada infinite
asymptotics dengan persamaan
T(n) = 2n2 -2n +2
Untuk n yang besar, pertumbuhan T(n) akan sebanding dengan n2 dan dengan mengabaikan suku
yang tidak mendominasi kita, maka kita tuliskan
T(n) = O(n2 )
Pada infinitesimal asymptotics, Big O digunakan untuk menjelaskan kesalahan dalam
aproksimasi untuk sebuah fungsi matematika, sebagai contoh

Kesalahannya memiliki selisih

Anda mungkin juga menyukai