<< 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. Iakemudian mulai lagi
dengan dua elemen pertama, mengulang sampai tidak ada swap telah terjadi pada
lulusterakhir. 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 kecilitem (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 satuunsur 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, danmengulangi langkah-langkah untuk sisa daftar. Itu
tidak lebih dari swap n, dan dengan demikian bergunadimana 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
daninsertion 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 dimensidan kemudian menyortir
kolom dari array menggunakan insertion sort.
<< Comb Sort
Comb Sort
adalah semacam algoritma sorting yang relatif sederhana awalnya dirancang
olehWlodzimierz Dobosiewicz pada tahun 1980. Kemudian ditemukan kembali dan dipopulerkan
oleh StephenLacey dan Richard Box dengan sebuah artikel majalah Byte
diterbitkan pada bulan April 1991. Sisirsemacam meningkatkan pada bubble sort,
dan algoritma saingan seperti Quicksort. Ide dasarnya adalahuntuk menghilangkan
kura-kura, atau nilai kecil dekat akhir daftar, karena dalam semacam
gelembungmenyortir 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 menggabungkandaftar 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 terburukrunning time adalah O
(n log n). Merge sort telah melihat lonjakan yang relatif baru dalam
popularitas untukimplementasi 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 sorttelah
digunakan di Jawa setidaknya sejak 2000 di JDK1.3.
<< Heap Sort
Heapsort
adalah versi yang jauh lebih efisien selection sort. Ia juga bekerja dengan
menentukanelemen (atau terkecil) terbesar daftar, menempatkan bahwa pada akhir
(atau awal) dari daftar, kemudianmelanjutkan dengan sisa daftar, tapi
menyelesaikan tugas ini secara efisien dengan menggunakan struktur datayang
disebut tumpukan, tipe khusus pohon biner. Setelah daftar data telah dibuat
menjadi tumpukan, simpulakar 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 diselection 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:
untukpartisi 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 dalamwaktu 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, tetapiadalah 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,
tersediadi 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 iniberjalan di O (| S | + n) dan O (| S |) memori di mana n adalah
panjang dari input. Ia bekerja denganmembuat sebuah array integer ukuran | S |
dan menggunakan bin i untuk menghitung kejadian anggota i Sdalam masukan.
Setiap masukan kemudian dihitung oleh incrementing nilai bin terkait. Setelah
itu, arraymenghitung adalah dilingkarkan melalui untuk mengatur semua masukan
dalam rangka. Algoritma sorting initidak bisa sering digunakan karena S harus
cukup kecil agar bisa efisien, namun algoritma ini sangat cepat danmenunjukkan
perilaku asimtotik besar sebagai meningkat n. Hal ini juga dapat dimodifikasi
untukmenyediakan 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
digitangka yang terdiri dari masing-masing k diurutkan dalam waktu O (n ° K).
Radix sort bisa proses digit setiapangka mulai dari angka signifikan paling
sedikit (LSD) atau digit yang paling signifikan (MSD). Hasil uji BNTmacam
algoritma pertama daftar dengan paling signifikan angka sambil menjaga agar
relatif merekamenggunakan semacam stabil. Kemudian macam mereka dengan angka
berikutnya, dan seterusnya daripaling signifikan yang paling signifikan,
berakhir dengan sebuah daftar diurutkan. Sedangkan jenis LSD radixmemerlukan
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 menghitunguntuk 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.
0 comments:
Post a Comment