GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing id.javascript.info — *Subarray* maksimum kembali ke pelajaran *Subarray* maksimumpentingnya: 2 Input adalah sebuah array angka, e.g. Tugasnya adalah: menemukan subarray Tulis fungsi Sebagai contoh:
Jika semua item adalah negatif, hal tersebut berarti kita tidak mengambil apapun (subarray kosong), jadi jumlahnya sama dengan nol:
Mohon coba untuk memikirkan sebuah solusi cepat: O(n2) atau bahkan O(n) jika bisa. Solusi lambanKita dapat menghitung semua semua sub-penjumlahan yang memungkinkan. Cara paling sederhana adalah dengan cara mengambil setiap elemen dan menghitung jumlah semua subarray dimulai dari situ. Contohnya, untuk
Kode tersebut sebenarnya adalah sebuah pengulangan nested (atau nested loop): pengulangan eksternal elemen-elemen array, dan yang internal menghitung sub-jumlah dengan elemen yang sekarang.
Solusi tersebut memiliki waktu penyelesaian O(n2). Dalam kata lain, jika kita menambah ukuran array 2 kali lipat, algoritma akan bekerja 4 kali lipat lebih lama. Untuk array yang besar (1000, 10000 item atau lebih) algoritma yang demikian akan mengarah pada kelambanan yang parah. Solusi cepatMari jalankan array tersebut dan simpan hasil penjumlahkan parsial elemen yang sekarang di dalam variabel Jika deskripsi tersebut terlalu samar, mohon perhatikan kodenya, yang ternyata cukup pendek:
Algoritma tersebut membutuhkan tepat 1 array yang lolos, jadi waktu penyelesaian adalah O(n). Kamu dapat menemukan informasi yang lebih rinci tentang algoritma di sini: Masalah subarray maksimum. Jika masih kurang jelas bagaimana hal tersebut bekerja, maka mohon menelusuri algoritma pada contoh di atas, perhatikan bagaimana algoritmanya bekerja, itulah cara yang paling baik. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |