Bubble Sort
Bubble sort merupakan algoritma
sorting sederhana. Algoritma
ini dimulai pada
awal set data.
Ia membandingkan dua
elemen pertama, dan
jika yang pertama adalah
lebih besar dari yang
kedua, maka swap
mereka. Terus melakukan
hal ini untuk setiap pasangan elemen berdekatan
dengan akhir kumpulan
data. Ia kemudian
mulai lagi dengan
dua elemen pertama, mengulang
sampai tidak ada swap
telah terjadi pada lulus terakhir. Rata-rata
Algoritma dan kinerja
kasus terburuk adalah
O (n2), sehingga
jarang digunakan untuk
menyortir besar, unordered,
set data. Gelembung
sort dapat digunakan
untuk mengurutkan sejumlah
kecil item (dimana
inefisiensi adalah bukan hukuman tinggi).
Gelembung sort juga
dapat secara efisien digunakan pada daftar yang
sudah diurutkan kecuali
untuk jumlah yang sangat
kecil elemen. Misalnya,
jika hanya satu
unsur yang tidak
sesuai, bubble sort hanya
akan memakan waktu 2n.
Jika dua unsur yang
tidak sesuai, bubble sort hanya akan mengambil
paling banyak 3n waktu.
Gelembung sort rata-rata kasus
dan kasus terburuk
keduanya O (n
²).
Selection Sort
Semacam Seleksi adalah
semacam perbandingan di tempat. Ini memiliki O (n2) kompleksitas,
sehingga tidak
efisien dalam daftar besar,
dan umumnya melakukan lebih buruk dari insertion
sort serupa. Seleksi
semacam terkenal karena
kesederhanaan, dan juga memiliki
keunggulan kinerja lebih algoritma yang
lebih rumit dalam situasi
tertentu. Algoritma mencari
nilai minimum, swap
dengan nilai di
posisi pertama, dan
mengulangi langkah-langkah
untuk sisa daftar.
Itu tidak lebih dari
swap n, dan
dengan demikian berguna
dimana swapping sangat
mahal.
Insertion
Sort
Insertion sort
merupakan algoritma sorting sederhana yang relatif efisien untuk daftar
kecil
dan sebagian besar daftar-disortir, dan sering digunakan sebagai bagian
dari
algoritma yang lebih canggih. Ia bekerja dengan mengambil unsur-unsur
dari satu
daftar dengan satu dan memasukkan mereka dalam posisi yang benar mereka
ke
dalam daftar diurutkan baru. Pada array, daftar baru dan elemen-elemen
yang tersisa
dapat berbagi ruang array, tetapi penyisipan mahal, membutuhkan
menggeser semua
elemen-elemen berikut alih oleh satu. Shell sort (lihat di bawah) adalah
varian
dari insertion sort yang lebih efisien untuk daftar yang lebih besar.
Shell
Sort
Shell sort diciptakan
oleh Donald Shell
pada tahun 1959. Ini meningkatkan atas bubble
sort dan insertion
sort dengan menggerakkan
keluar
dari elemen-elemen memesan lebih dari satu posisi
pada suatu waktu. Salah satu
implementasi dapat
digambarkan sebagai mengatur urutan data
dalam array dua
dimensi dan kemudian
menyortir kolom dari
array menggunakan insertion sort.
Comb Sort
Comb Sort adalah semacam algoritma
sorting yang relatif sederhana
awalnya dirancang oleh Wlodzimierz
Dobosiewicz pada tahun 1980.
Kemudian ditemukan kembali
dan dipopulerkan oleh
Stephen Lacey dan
Richard Box dengan
sebuah artikel majalah
Byte diterbitkan pada
bulan April 1991. Sisir
semacam meningkatkan pada
bubble sort, dan algoritma
saingan seperti Quicksort.
Ide dasarnya adalah untuk menghilangkan kura-kura,
atau nilai kecil
dekat akhir daftar,
karena dalam semacam
gelembung menyortir ini sangat melambat.
(Kelinci, nilai besar
sekitar awal daftar,
tidak menimbulkan masalah di bubble sort.).
Merge
Sort
Merge sort mengambil
keuntungan dari kemudahan penggabungan
sudah daftar diurutkan
ke daftar diurutkan baru. Dimulai dengan
membandingkan setiap dua elemen (yaitu,
1 dengan 2,
kemudian 3 dengan
4 ...) dan
swapping mereka jika
yang pertama datang
setelah kedua. Kemudian
masing-masing menggabungkan
daftar yang dihasilkan
dua
menjadi daftar empat,
kemudian menggabungkan
daftar
tersebut empat, dan
seterusnya,
sampai akhirnya dua
daftar digabungkan ke dalam daftar diurutkan
akhir. Dari algoritma
yang dijelaskan di sini,
ini adalah yang pertama
yang baik daftar
skala yang sangat besar,
karena kasus terburuk
running time adalah O (n log n). Merge
sort telah melihat
lonjakan yang relatif baru dalam popularitas
untuk implementasi praktis, yang digunakan
untuk rutin semacam
standar dalam bahasa pemrograman Perl, [5]
Python (sebagai timsort
[6]), dan Jawa
(juga menggunakan timsort per JDK7
[7 ]), antara
lain. Merge sort
telah digunakan di
Jawa setidaknya sejak
2000 di JDK1.3.
Heap
Sort
Heapsort adalah versi yang
jauh lebih efisien
selection sort. Ia juga
bekerja dengan menentukan
elemen (atau terkecil)
terbesar daftar, menempatkan
bahwa pada akhir
(atau awal) dari daftar,
kemudian melanjutkan dengan sisa daftar,
tapi menyelesaikan tugas ini secara
efisien dengan menggunakan
struktur data yang
disebut tumpukan, tipe
khusus pohon biner.
Setelah daftar data
telah dibuat menjadi
tumpukan, simpul akar
dijamin menjadi unsur
(atau terkecil) terbesar.
Ketika dipindahkan dan ditempatkan di akhir
daftar, tumpukan adalah
ulang sehingga elemen
terbesar yang tersisa bergerak ke akar.
Menggunakan heap, menemukan elemen terbesar
berikutnya membutuhkan
O (log n) waktu,
bukan O (n)
untuk linear scan
di selection sort sederhana. Hal ini memungkinkan
heapsort untuk menjalankan
dalam O (n log n) waktu,
dan
ini juga merupakan kompleksitas
kasus terburuk.
Quick
Sort
Quicksort adalah membagi
dan menaklukkan algoritma
yang mengandalkan operasi partisi: untuk
partisi array, kita
memilih sebuah elemen,
yang disebut pivot,
memindahkan semua unsur
kecil
sebelum poros, dan
memindahkan semua elemen yang lebih besar setelah itu. Hal ini
dapat dilakukan secara
efisien dalam waktu
linier dan di tempat.
Kami kemudian secara
rekursif mengurutkan sublists
lebih kecil dan lebih
besar. Implementasi Efisien
quickSort (dengan partisi di-tempat)
biasanya macam stabil
dan agak rumit,
tetapi adalah salah satu dari
algoritma pengurutan tercepat
dalam praktek. Bersama dengan
sederhana O (log
n) penggunaan ruang,
ini membuat salah
satu quickSort dari
algoritma pengurutan yang
paling populer, tersedia
di perpustakaan banyak
standar. Isu paling
kompleks
di quickSort adalah
memilih elemen pivot
yang baik; konsisten pilihan yang buruk pivots
dapat mengakibatkan drastis lambat O
(n ²) kinerja,
tetapi jika di
setiap langkah kita memilih median sebagai
pivot maka ia
bekerja dalam O (n
log n ). Menemukan
median, bagaimanapun, adalah O (n)
operasi pada daftar
unsorted, dan karena
itu menuntut hukuman
sendiri.
Counting
Sort
Counting Sort berlaku
jika setiap masukan diketahui milik set
tertentu, S, kemungkinan.
Algoritma ini berjalan
di O (|
S | +
n) dan O (| S
|) memori di mana n
adalah panjang dari input. Ia bekerja dengan
membuat sebuah array integer ukuran |
S | dan
menggunakan bin i
untuk menghitung kejadian
anggota i S
dalam masukan. Setiap masukan
kemudian dihitung oleh
incrementing nilai bin terkait. Setelah
itu, array menghitung
adalah dilingkarkan melalui
untuk mengatur semua masukan dalam rangka.
Algoritma sorting ini tidak bisa sering
digunakan karena S
harus cukup kecil
agar bisa efisien, namun algoritma ini
sangat cepat dan
menunjukkan perilaku asimtotik
besar sebagai meningkat
n. Hal ini juga
dapat dimodifikasi untuk menyediakan
perilaku yang stabil.
Bucket
Sort
Bucket sort
adalah membagi dan menaklukkan algoritma sorting yang generalizes
Counting
mengurutkan berdasarkan partisi array ke dalam jumlah terbatas ember.
Setiap
ember kemudian diurutkan secara individual, baik menggunakan algoritma
sorting
yang berbeda, atau dengan rekursif menerapkan algoritma sorting ember.
Sebuah
variasi dari metode ini disebut semacam hitungan satu buffer lebih cepat
daripada quickSort dan memakan waktu sekitar waktu yang sama untuk
berjalan di
setiap set data. Karena kenyataan bahwa semacam ember harus menggunakan
sejumlah ember yang terbaik adalah cocok untuk digunakan pada set data
lingkup
terbatas. Bucket sort akan cocok untuk data seperti nomor jaminan sosial
- yang
memiliki banyak variasi.
Radix
Sort
Radix sort adalah
sebuah algoritma yang macam angka dengan
digit individu pengolahan.
n digit angka
yang terdiri dari masing-masing
k diurutkan dalam
waktu O (n
° K). Radix sort
bisa proses digit
setiap angka mulai
dari angka signifikan
paling sedikit (LSD) atau digit yang paling
signifikan (MSD). Hasil uji BNT macam algoritma
pertama daftar dengan paling signifikan angka
sambil menjaga agar
relatif mereka menggunakan
semacam stabil. Kemudian
macam mereka dengan
angka berikutnya, dan seterusnya dari paling
signifikan yang paling
signifikan, berakhir dengan
sebuah daftar diurutkan.
Sedangkan jenis LSD
radix memerlukan penggunaan
semacam stabil, MSD
algoritma radix sort
tidak (kecuali sorting
yang stabil yang diinginkan).
Di tempat semacam
MSD radix tidak
stabil. Adalah umum
untuk algoritma semacam
menghitung untuk digunakan
secara internal oleh jenis radix. Hybrid
pemilahan pendekatan,
seperti menggunakan insertion
sort sampah kecil
untuk
meningkatkan kinerja semacam radix signifikan.
Distribution
Sort
Distribution
Sort mengacu pada setiap algoritma sorting dimana data didistribusikan
dari
input untuk struktur antara beberapa yang kemudian dikumpulkan dan
ditempatkan
pada output. Lihat Bucket sort.
Tim
Sort
Distribusi semacam
mengacu pada setiap
algoritma sorting dimana data didistribusikan dari input untuk struktur
antara
beberapa yang kemudian dikumpulkan dan ditempatkan pada output. Lihat
Bucket
sort.Sumber Referensi :
izin copas yaa, semoga bermanfaat
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus