Dalam ilmu komputer, algoritme pengurutan adalah algoritme yang menempatkan elemen daftar dalam urutan tertentu. Pesanan yang paling sering digunakan adalah urutan numerik dan urutan leksikografis. Pengurutan efisien penting untuk mengoptimalkan efisiensi algoritme lain (seperti penelusuran dan penggabungan algoritme) yang memerlukan data masukan untuk diurutkan daftar. Penyortiran juga sering berguna untuk data kanonikalisasi dan untuk menghasilkan keluaran yang dapat dibaca manusia. Lebih formal, output dari algoritma penyortiran apa pun harus memenuhi dua kondisi:
Outputnya dalam urutan yang tdk teratur (setiap elemen tidak lebih kecil dari elemen sebelumnya sesuai dengan total order yang diinginkan);
Outputnya adalah permutasi (pengurutan ulang, namun tetap mempertahankan semua elemen asli) dari input.
Algoritme penyortiran sering dikelompokkan berdasarkan:
Komputasi komputasional (terburuk, rata-rata, dan perilaku terbaik) dalam hal ukuran daftar (n). Untuk algoritma penyortiran seri yang umum, perilaku yang baik adalah O (n log n), dengan sortir paralel dalam O (log2 n), dan perilaku buruk adalah O (n2). (Lihat Big O notasi.) Perilaku ideal untuk serial semacam adalah O (n), tetapi ini tidak mungkin dalam kasus rata-rata. Pengurutan paralel optimal adalah O (log n). Algoritma pemilahan berbasis-perbandingan membutuhkan setidaknya Ω (n log n) perbandingan untuk sebagian besar input.
Rekursi. Mereka semacam perbandingan. Suatu jenis pembanding memeriksa data hanya dengan membandingkan dua elemen dengan operator perbandingan.
Metode umum: penyisipan, pertukaran, seleksi, penggabungan, dll. Pertukaran jenis termasuk jenis gelembung dan quicksort. Pilihan jenis terma shaker sort dan heapsort.
Apakah algoritma itu serial atau paralel. Sisa dari diskusi ini hampir secara eksklusif berkonsentrasi pada algoritma serial dan mengasumsikan operasi serial.
Adaptability: Apakah atau tidaknya presortedness dari input mempengaruhi waktu berjalan. Algoritma yang memperhitungkan hal ini dikenal sebagai adaptif.
Outputnya dalam urutan yang tdk teratur (setiap elemen tidak lebih kecil dari elemen sebelumnya sesuai dengan total order yang diinginkan);
Outputnya adalah permutasi (pengurutan ulang, namun tetap mempertahankan semua elemen asli) dari input.
Algoritme penyortiran sering dikelompokkan berdasarkan:
Komputasi komputasional (terburuk, rata-rata, dan perilaku terbaik) dalam hal ukuran daftar (n). Untuk algoritma penyortiran seri yang umum, perilaku yang baik adalah O (n log n), dengan sortir paralel dalam O (log2 n), dan perilaku buruk adalah O (n2). (Lihat Big O notasi.) Perilaku ideal untuk serial semacam adalah O (n), tetapi ini tidak mungkin dalam kasus rata-rata. Pengurutan paralel optimal adalah O (log n). Algoritma pemilahan berbasis-perbandingan membutuhkan setidaknya Ω (n log n) perbandingan untuk sebagian besar input.
Rekursi. Mereka semacam perbandingan. Suatu jenis pembanding memeriksa data hanya dengan membandingkan dua elemen dengan operator perbandingan.
Metode umum: penyisipan, pertukaran, seleksi, penggabungan, dll. Pertukaran jenis termasuk jenis gelembung dan quicksort. Pilihan jenis terma shaker sort dan heapsort.
Apakah algoritma itu serial atau paralel. Sisa dari diskusi ini hampir secara eksklusif berkonsentrasi pada algoritma serial dan mengasumsikan operasi serial.
Adaptability: Apakah atau tidaknya presortedness dari input mempengaruhi waktu berjalan. Algoritma yang memperhitungkan hal ini dikenal sebagai adaptif.
0 komentar: