Saya mungkin akan mengajar "kursus kilat Java" segera. Meskipun mungkin aman untuk menganggap bahwa anggota audiens akan mengetahui notasi Big-O, mungkin tidak aman untuk mengasumsikan bahwa mereka akan tahu apa urutan berbagai operasi pada berbagai implementasi pengumpulan.
Saya dapat mengambil waktu untuk membuat ringkasan matriks sendiri, tetapi jika sudah ada di domain publik di suatu tempat, saya yakin ingin menggunakannya kembali (dengan kredit yang tepat, tentu saja.)
Adakah yang punya petunjuk?
java
collections
big-o
Jared
sumber
sumber
Jawaban:
Situs web ini cukup bagus tetapi tidak khusus untuk Java: http://bigocheatsheet.com/
sumber
Buku Java Generics and Collections memiliki informasi ini (halaman: 188, 211, 222, 240).
Daftar implementasi:
Tetapkan implementasi:
Implementasi peta:
Implementasi antrian:
Bagian bawah javadoc untuk paket java.util berisi beberapa tautan bagus:
sumber
Javadocs dari Sun untuk setiap kelas koleksi umumnya akan memberi tahu Anda apa yang Anda inginkan. HashMap , misalnya:
TreeMap :
TreeSet :
(penekanan milikku)
sumber
Orang di atas memberi perbandingan untuk HashMap / HashSet vs. TreeMap / TreeSet.
Saya akan berbicara tentang ArrayList vs. LinkedList:
Daftar Array:
get()
add()
ListIterator.add()
atauIterator.remove()
, itu akan menjadi O (n) untuk menggeser semua elemen berikutLinkedList:
get()
add()
ListIterator.add()
atauIterator.remove()
, itu akan menjadi O (1)sumber
if you insert or delete an element in the middle using ListIterator.add() or Iterator.remove(), it will be O(1)
Mengapa? pertama kita perlu mencari elemen di tengah, jadi mengapa tidak O (n)?ListIterator.add()
atauIterator.remove()
" Kami memiliki iterator.