Ирилтоо, издоо жана Big-O интуициясы
Эмне үчүн бир эле маселе он элементте заматта, ал эми он миллиондо катып калат
- сызыктуу издөө менен экилик издөөнү ишке ашырып, кайсынысы качан колдонуларын айтуу,
- көбүк ирилтүү менен кыстаруу ирилтүүсүн жазып, аларды Python куруучу ирилтүүсү менен салыштыруу,
O(1),O(n),O(n log n)жанаO(n^2)класстарын окуу,- теорияны өлчөнгөн сандарга айландыруу үчүн
timeitколдонуу, - божомолдоп эмес, өсүш жөнүндө ой жүгүртүп туура куралды тандоо.
1. Эмне үчүн так кирүүнүн көлөмү маанилүү
Каалаган код кичинекей тизмеде тез. Кызыктуусу — кирүү миңдеген же миллиондогон элементке чейин өскөндө эмне болору. Биз алгоритмди секунд менен эмес (алар процессоруңузга көз каранды), кирүүнүн көлөмүнүн (аны n деп белгилейбиз) функциясы катары аткарган негизги кадамдардын саны менен өлчөйбүз.
Эгерде n эки эсеге көбөйгөндө кадамдар да болжол менен эки эсеге көбөйсө, өсүш сызыктуу. Эгерде n эки эсеге көбөйгөндө кадамдар төрт эсеге көбөйсө, өсүш квадраттык жана масштабда жазалайт. Big-O негизги мүчөнү гана калтырып, туруктууларды таштайт, анткени чоң n учурунда бардыгын так негизги мүчө чечет.