Saya sedang melihat situs web ini yang mencantumkan kompleksitas Big O untuk berbagai operasi. Untuk Array Dinamis, kompleksitas penghapusannya adalah O(n), sedangkan untuk Tabel Hash adalah O(1).
Untuk Array Dinamis seperti ArrayLists menjadi O(n), itu berarti operasi menghilangkan beberapa nilai dari pusat dan kemudian menggeser setiap indeks ke atas satu untuk menjaga blok data tetap berdekatan. Karena jika kita hanya menghapus nilai yang tersimpan di indeks k dan tidak menggesernya, maka itu adalah O(1).
Namun dalam Tabel Hash dengan probing linier, penghapusan adalah hal yang sama, Anda cukup menjalankan nilai Anda melalui fungsi Hash, masuk ke Array Dinamis yang menyimpan data Anda, dan menghapus nilai yang disimpan di dalamnya.
Jadi mengapa Tabel Hash mendapatkan kredit O(1) sementara Array Dinamis mendapatkan O(n)?