Setahu saya tidak ada algoritma kasus terburuk yang memecahkan masalah berikut:
Dengan urutan panjang terdiri dari bilangan bulat terbatas, temukan permutasi di mana setiap elemen kurang dari atau sama dengan penggantinya.
Tetapi apakah ada bukti bahwa itu tidak ada, dalam model komputasi transdichotomous ?
Perhatikan bahwa saya tidak membatasi rentang bilangan bulat. Saya juga tidak membatasi solusi untuk jenis perbandingan.
Jawaban:
Integer dapat diurutkan secara stabil dalam waktu dengan ruang tambahan. O ( 1 )O(n) O(1) n [ 1 , n c ]Lebih tepatnya, jika Anda memiliki bilangan bulat dalam kisaran , dapat diurutkan dalam waktu O (n).n [1,nc]
Ini hanya ditunjukkan beberapa tahun yang lalu oleh sebuah tim termasuk almarhum Mihai Pătrașcu (yang seharusnya mengejutkan siapa pun yang akrab dengan pekerjaannya). Ini adalah hasil yang luar biasa yang saya terkejut lebih banyak orang tidak tahu, karena itu berarti masalah penyortiran bilangan bulat (secara teoritis) diselesaikan.
Ada algoritma praktis (diberikan dalam makalah di atas) jika Anda diizinkan untuk memodifikasi kunci. Pada dasarnya, Anda dapat mengompresi bilangan bulat yang disortir lebih banyak daripada Anda dapat mengompresi bilangan bulat yang tidak disortir, dan ruang ekstra yang Anda peroleh persis sama dengan memori tambahan yang diperlukan untuk melakukan pengurutan radix. Mereka juga memberikan algoritma yang tidak praktis yang mendukung kunci read-only.
sumber
Jika tidak ada batas atas pada ukuran bilangan bulat Anda, maka saya tidak percaya ada algoritma penyortiran waktu-dikenal.
sumber