Saya mencoba membuat daftar kerumitan waktu dari operasi struktur data umum seperti Array, Pohon Pencarian Biner, Heap, Daftar Tertaut, dll. Dan terutama saya mengacu pada Java. Mereka sangat umum, tetapi saya rasa beberapa dari kita tidak 100% yakin tentang jawaban yang tepat. Bantuan apa pun, terutama referensi, sangat dihargai.
Misalnya Untuk daftar tertaut tunggal: Mengubah elemen internal adalah O (1). Bagaimana kamu melakukannya? Anda HARUS mencari elemen sebelum mengubahnya. Juga, untuk Vektor, menambahkan elemen internal diberikan sebagai O (n). Tetapi mengapa kita tidak dapat melakukannya dalam waktu konstan diamortisasi menggunakan indeks? Harap perbaiki saya jika saya melewatkan sesuatu.
Saya memposting temuan / tebakan saya sebagai jawaban pertama.
sumber
Jawaban:
Array
Delete
operasi yang tersedia di Array. Kami secara simbolis dapat menghapus elemen dengan menyetelnya ke beberapa nilai tertentu, misalnya -1, 0, dll. Tergantung pada kebutuhan kamiInsert
untuk array pada dasarnyaSet
seperti yang disebutkan di awalArrayList:
Daftar Tertaut:
Daftar Tertaut Ganda:
Tumpukan:
Antrian / Deque / Circular Queue:
Pohon Pencarian Biner:
Pohon Merah-Hitam:
Heap / PriorityQueue (min / max):
HashMap / Hashtable / HashSet:
sumber