Bu veri yapısını bulamadım, ancak bu alanda uzman değilim.
Yapı bir küme uygular ve temel olarak değişmez olan bir karşılaştırılabilir elemanlar dizisidir. Değişmeyen aşağıdadır (özyinelemeli olarak tanımlanmıştır):
Uzunluk 1 dizisi bir birleştirme dizisidir.
2 ^ n uzunluğunda bir dizi (n> 0 için) bir birleştirme dizisi iff:
- ilk yarı bir birleştirme dizisidir ve ikinci yarı boş veya
- ilk dizi dolu ve sıralanmış ve ikinci yarı bir birleştirme dizisidir.
Dizi doluysa, sıralandığını unutmayın.
Bir eleman eklemek için iki durumumuz var:
- İlk yarı dolu değilse, ilk yarıya tekrarlı olarak yerleştirin.
- İlk yarı dolu ise, ikinci yarıya tekrarlı olarak yerleştirin.
- Özyinelemeli adımdan sonra, dizinin tamamı doluysa, yarımları birleştirin (sıralanır) ve orijinal uzunluğunun iki katı kadar yeniden boyutlandırın.
Bir öğe bulmak için, dizi dolduğunda ikili aramayı kullanarak iki yarıda da tekrarlayın. (Bu en fazla artan parça bulunduğundan verimli olmalıdır ).
Yapı mergesort'un statik bir versiyonu olarak düşünülebilir.
Bir eleman silmek için ne yapılması gerektiği belli değil.
Düzenleme: yapı anlayışı geliştirdikten sonra.