GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing uz.javascript.info — Maksimal submassiv darsga qaytish Maksimal submassivKirish raqamlar massivi, masalan. Vazifa quyidagicha: elementlarning maksimal yig’indisi bilan Ushbu summani qaytaradigan Masalan:
Agar barcha narsalar salbiy bo’lsa, demak biz hech narsani olmaymiz (submasssiv bo’sh), shuning uchun yig’indisi nolga teng:
Iltimos, tezkor echimni o’ylab ko’ring: O(n2) yoki hatto imkoningiz bo’lsa, O(n). Sekin yechimBiz barcha mumkin bo’lgan qismiy yig’indilarni hisoblashimiz mumkin. Eng oddiy usul – har bir elementni olib, undan boshlanadigan barcha subarray’larning yig’indisini hisoblashdir. Masalan,
Kod aslida ichma-ich tsikl: tashqi tsikl array elementlari bo’ylab, ichki esa joriy elementdan boshlanadigan qismiy yig’indilarni hisoblaydi.
Bu yechimning vaqt murakkabligi O(n2). Boshqacha qilib aytganda, agar array hajmini 2 marta oshirsak, algoritm 4 marta sekinroq ishlaydi. Katta array’lar (1000, 10000 yoki undan ko’p elementlar) uchun bunday algoritmlar jiddiy sekinlikka olib kelishi mumkin. Tez yechimArray bo’ylab yuramiz va elementlarning joriy qismiy yig’indisini Agar tavsif juda noaniq bo’lsa, kodni ko’ring, u yetarlicha qisqa:
Algoritm aynan 1 marta array’ni o’tishni talab qiladi, shuning uchun vaqt murakkabligi O(n). Algoritm haqida batafsil ma’lumotni bu yerda topishingiz mumkin: Maximum subarray problem. Agar hali ham nima uchun ishlashi aniq bo’lmasa, yuqoridagi misollarda algoritmni kuzatib boring, qanday ishlashini ko’ring – bu har qanday so’zdan yaxshiroq. |
| 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. |