Algoritma apa yang digunakan ketika ingin mengurutkan nilai suatu bilangan acak?

Algoritma adalah salah satu cara terbaik agar dapat menyelesaikan masalah dengan membuat suatu kerangka, nah disini saya ingin bertanya apabila ada sekumpulan bilangan acak , algoritma apa yang digunakan ketika ingin mengurutkan suatu bilangan acak ?

image
Algoritma yang kita gunakan ketika ingin mengurutkan suatu bilangan acak , dengan menggunakan metode algoritma Sorting
Sorting merupakan Pengurutan data yang dilakukan secara berurut sehingga data tersebut tersusun sesuai kehendak kita.
Berikut Macam jenis Sorting Algoritma Pemrograman struktur data :

Beberapa algoritma untuk melakukan sorting:

  • Bubble sort
  • Selection sort
  • Insertion sort
  • Shell sort
  • Merge sort
  • Quick sort

1.Bubble Sort
Bubble sort merupakan algoritma pengurutan / metode sorting paling sering digunakan dengan metode pengurutan paling sederhana. pada metode bubble sort, Pengurutan yang dilakukan dengan cara membandingkan masing-masing item / data dalam suatu list secara berpasangan, lalu menukar item tersebut jika diperlukan, dan mengulanginya sampai akhir list secara berurutan dengan sempurna, sehingga tidak ada lagi item yang dapat ditukar.

berikut contoh bubble sort :
image
Nilai 6 lebih besar dari pada nilai 5 , maka lima kedepan , nilai 6 kebelakang
image
selanjutnya nilai 6 dieksekusi dengan nilai di samping kanan nya yaitu 3, karena nilai 3 lebih kecil dari enam maka nilai tiga kedepan . begitu seterusnya hingga nilai berurutan dari yang terkecil sampai terbesar seperti ini
image

2. Selection Sort
Selection Sort merupakan metode pengurutan dengan cara memlilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih tersebut dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
image
selanjutnya
image
hingga nilai angka berurutan seperti ini
image
3. Insertion Sort
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.
contoh
ada nilai angka yang acak
image
image
image

4. Shell Sort
Shell sort diciptakan oleh Donald Shell pada tahun 1959… Shell sort merupakan metode pengurutan yang hampir sama dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir.
image

5. Merge Sort

  • Divide = Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
  • Conquer = setiap bagian dengan memanggil prosedur merge sort secara rekursif

Kombinasi = Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data yang berurutan.Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi jika bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian yagn dikehendaki.
ada 8 angka acak ,
image
kemudian dibagi menjadi dua bagian , menjadi 1 bagian ada 4 angka
image
selanjutnya dibagi menjadi 2 lagi perbagian , dan ada 4 bagian dan per bagian sudah diurutkan mulai dari yang terkecil
image
setelah itu nilai nya dibandingkan per 2 bagian di ujung kiri , dah dipilih yang terkecil kemudian diurutkan
image
sehingga menjadi 2 bagian, dimana per bagian angkanya sudah terurut mulai dari yang terkecil ,ujung perbagian dibandingkan dan dipilih dari urutan yang paling terkecil

image
Sehingga angka yang mulanya acak nilainya menjadi berurutan mulai dari yang terkecil .
image

6.Quick Sort
Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut

Devide= bisa dikatakan Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.

Conque=dengan cara Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array
contoh
ada angka acak
image
kemudian diliihat dari ujung kiri angka yang posisinya pas dengan nilainya , diisini yang pas urutannya adalah no 3 , kemudian angka pada ujung kanan dan ujung kiri .
image
image
image
image
begitu seterusnya hingga nilai angka menjadi berurutan .
image!

Sumber :


Dalam menyelesaikan suatu masalah bilangan acak dibutuhkan algoritma yaitu Sorting, suatu suatu proses menyusun kembali data yang sebelumnya sudah disusun dengan pola tertentu, sehingga data dapat tersusun secara teratur menurut aturan tertentu (untuk data yang bertipe numerik atau karakter).

Sorting dibagi menjadi dua macam yaitu :

  1. Ascending (urut naik) merupakan pengurutan dari angka yang nilainya terkecil hingga nilai terbesar.
  2. Descending (urut turun) merupakan pengurutan dari angka yang terbesar hingga

Contoh :
Diberikan suatu data berupa bilangan berikut ini:
3 9 1 4 0 2

Hasil sorting :

  1. Ascending adalah 0 1 2 3 4 9
  2. Descending adalah 9 4 3 2 1 0

Didalam pemrograman juga terdapat jenis-jenis Algoritma Sorting dari struktur data yaitu :

1. Exchange Short

adalah algoritma sorting yang membandingkan suatu elemen dengan elemen-elemen lainnya dalam array tersebut, dan melakukan pertukaran elemen jika perlu. Dengan ada salah satu elemen yang selalu menjadi elemen pusat / pivot.

Berikut contoh proses algoritma Exchange Short :

image

Proses 1
Angka 84 di urutan awal mengurutkan angka-angka selanjutnya yang kemudian akan di seleksi mana bilangan yang terbesar

image

Proses 2
Bilangan yang telah diseleksi adalah 94 karena urutan bilangan tersebut adalah bilangan terbesar, di kolom ke dua diurutkan angka 69 hingga angka terbesar kecuali angka yang telah terseleksi di kolom sebelumnya.
image

Proses 3
Bilangan yang telah diseleksi adalah 91 karena urutan bilangan tersebut adalah bilangan terbesar setelah 94, di kolom ke ketiga diurutkan angka 69 hingga angka terbesar kecuali angka yang telah terseleksi di kolom sebelumnya.
image

Proses 4
Bilangan yang telah diseleksi adalah 86 karena urutan bilangan tersebut adalah bilangan terbesar setelah 91, di kolom ke keempat diurutkan angka 69 hingga angka terbesar kecuali angka yang telah terseleksi di kolom sebelumnya.
image

Proses 5
Bilangan yang telah diseleksi adalah 84 karena urutan bilangan tersebut adalah bilangan terbesar setelah 86, di kolom ke kelima dan keenam hanya ada dua angka sehingga urutannya langsung di seleksi dengan kolom kelima angka 76 dan kolom keenam angka 64.
image

2. Bucket Sort

adalah algoritma sorting yang mempartisi deret angka menjadi beberapa deret yang kemudian dianalogikan ke dalam ember atau wadah.

berikut adalah contoh dari Bucket Sort :
image

Cara :

  1. Setiap angka dalam deret yang akan diurutkan diseleksi satu persatu ke dalam tiap wadah dengan range nilai tertentu
  2. Kemudian di setiap wadah angka diseleksi kembali dan diurutkan dari terkecil hingga terbesar
  3. Setelah semua wadah telah urut maka angka-angka yang telah diurut didalam data tadi diurutkan kembali dengan urutan yang telah terseleksi.

3. Heap Sort

adalah algoritma sorting yang menggunakan struktur data heap, dengan nilai parent selalu lebih besar dari pada nilai childnya.

Contoh dari Heap Sort :

Cara :

  1. Buat suatu heap.
  2. Ambil isi dari root masukkan kedalam sebuah array.
  3. Hapus element root dengan mempertahankan properti heap.
  4. Ulangi sampai tree menjadi kosong.

SUMBER :