Masalah pemeliharaan pesanan (atau "mempertahankan pesanan dalam daftar") adalah untuk mendukung operasi:
singleton
: membuat daftar dengan satu item, mengembalikan pointer ke sanainsertAfter
: diberi pointer ke item, memasukkan item baru setelahnya, mengembalikan pointer ke item barudelete
: diberi pointer ke item, menghapusnya dari daftarminPointer
: diberi dua petunjuk untuk item dalam daftar yang sama, mengembalikan yang lebih dekat ke bagian depan daftar
Saya menyadari tiga solusi untuk masalah ini yang melakukan semua operasi dalam waktu diamortisasi. Mereka semua menggunakan perkalian.
- Athanasios K. Tsakalidis: Mempertahankan urutan dalam daftar tertaut yang digeneralisasi
- Dietz, P., D. Sleator, Dua algoritma untuk menjaga ketertiban dalam daftar
- Michael A. Bender, Richard Cole, Erik D. Demaine, Martin Farach-Colton, dan Jack Zito, "Dua Algoritma Sederhana untuk Mempertahankan Ketertiban dalam Daftar"
Dapatkah pesanan dipertahankan dalam daftar dalam waktu diamortisasi tanpa menggunakan operasi aritmatika yang tidak ada dalam ?
Perkalian hanya baru-baru ini (sejak Pentium III) berada di . Bisakah kita memasukkan solusi yang menggunakan perkalian?
—
AT
Ditemukan di mana saya membaca tentang ini; itu tentang Pentium 4 bukan III; dan tidak mengimplementasikan multiplikasi, tetapi mengatasinya dengan instruksi baru dari prosesor itu: M. Thorup, 'On AC0 Implementasi Fusion Tree dan Atomic Heaps', dalam Prosiding Simposium Tahunan ACM-SIAM Keempat Belas pada Algoritma Diskrit, Philadelphia, PA, AS, 2003, hlm. 699–707.
—
AT