Algoritma balancing yang lebih sederhana dapat membutuhkan waktu diamortisasi per rotasi dalam kasus terburuk. Misalkan pohon itu hanyalah jalan yang sama sekali tidak seimbang dari anak-anak yang benar; tidak ada simpul yang memiliki anak kiri. Satu-satunya daun di pohon ini adalah pohon dengan kunci maksimal. Jika Anda memutar langkah ini demi langkah ke root, Anda telah menggunakan rotasi , dan pohon yang dihasilkan masih sama sekali tidak seimbang.Ω ( n )n - 1
Sekarang misalkan kita berulang kali mempromosikan setiap node di pohon, satu per satu, dalam mengurangi urutan kunci, menggunakan algoritma yang lebih sederhana. Setelah semua promosi selesai, pohon telah kembali ke keadaan semula, dan kami telah menggunakan sekitar 2/2 rotasi. Dengan demikian, rata-rata, setiap promosi dalam urutan ini membutuhkan rotasi ; selain itu, saya dapat mengulangi pola ini selamanya. Jadi biaya perolehan diamortisasi untuk algoritma promosi ini adalah .n2/ 2Ω ( n )Ω ( n )
Contoh buruk ini muncul di kertas pohon splay asli Sleator dan Tarjan.
Algoritma splay mempertimbangkan tidak hanya satu node pada satu waktu, tetapi dua node pada suatu waktu. Khususnya, jika simpul yang direntangkan adalah anak yang tepat dari anak yang tepat, algoritma splay pertama-tama memutar induk , dan baru kemudian memutar .xxx
Keuntungan dari algoritma yang lebih kompleks ini adalah bahwa ia tidak hanya membawa node yang diakses ke root, tetapi juga memindahkan setiap leluhur dari node yang diakses kira-kira setengah jalan ke root , tetapi tidak pernah memindahkan node apa pun lebih dari jumlah level yang konstan jauh dari akar.
Sleator dan Tarjan membuktikan bahwa waktu diamortisasi per splay hanya . (Buktinya menggunakan analisis kasus yang membosankan menggunakan fungsi potensial magis; jujur, jika Anda ingin tahu, cukup baca kertas asli.) Tentu saja satu rentang dapat mengambil waktu , tetapi mulai dengan pohon kosong, Anda harus melakukan banyak penyisipan dan splays untuk mengatur contoh yang buruk.O ( logn )Ω ( n )
Lebih singkat lagi: Splaying memindahkan node ke atas dengan cepat dan ke bawah dengan lambat.