Saya baru-baru ini membaca bahwa dimungkinkan untuk memiliki array yang tidak perlu diinisialisasi, yaitu dimungkinkan untuk menggunakannya tanpa harus menghabiskan waktu mencoba mengatur setiap anggota ke nilai default. yaitu Anda dapat mulai menggunakan array seolah-olah telah diinisialisasi dengan nilai default tanpa harus menginisialisasi itu. (Maaf, saya tidak ingat di mana saya membaca ini).
Misalnya mengapa itu bisa mengejutkan:
Katakanlah Anda mencoba membuat model kasus terburuk hashtable (untuk setiap sisipan / hapus / cari) bilangan bulat dalam kisaran .
Anda dapat mengalokasikan array ukuran bit dan menggunakan bit individual untuk mewakili keberadaan integer dalam hashtable. Catatan: mengalokasikan memori dianggap sebagai waktu.O ( 1 )
Sekarang, jika Anda tidak perlu menginisialisasi array ini sama sekali, urutan operasi say pada hashtable ini sekarang menjadi case terburuk .O ( n )
Jadi sebenarnya, Anda memiliki implementasi hash "sempurna", yang untuk urutan operasi menggunakan ruang , tetapi berjalan dalam waktu !Θ ( n 2 ) O ( n )
Biasanya orang akan mengharapkan runtime Anda setidaknya seburuk penggunaan ruang Anda!
Catatan: Contoh di atas dapat digunakan untuk implementasi set jarang atau matriks jarang, jadi itu bukan hanya kepentingan teoritis, saya kira.
Jadi pertanyaannya adalah:
Bagaimana mungkin untuk memiliki array seperti struktur data yang memungkinkan kita untuk melewatkan langkah inisialisasi?