Selection search algoritmi -> arrayni 0-elementidan boshlab oxirgi elementiga qarab eng kichik yoki eng katta sonni qidirish va indexini almashtirish orqali tartiblaydi.Masalan 1 elementni oladi va qolgan elementlar ichidan eng kichik bo'lgan sonni qidiradi va indexini o'zgartiradi.Misol uchun: [5,19,33,43,19,34,1,43] array bo'lsa 5 ni oladi va barcha elementlar ichidan eng kichigini qidiradi va bu arrayda eng kichigi 1 bo'lgani uchun elementlar o'rni almashtiriladi => [1,19,33,43,19,34,5,43].Keyin pointer 1 indexdagi elementga o'tkaziladi va yana 1 indexdagi elementdan keyingi barcha elementlar ichidan eng kichigini qaytadi va natija: [1,5,33,43,19,34,19,43].Bu algoritmning ishlash tezligi BO(n^2) ga teng hisoblanadi.
Bubble sort bu bir elementni o'zidan keyingi element bilan taqqoslab element joyini o'zgartirib amalga oshiriladigan algoritm hisoblanadi.Uning ishlash tezligi BO(n2) n kvadrat ga teng hisoblanadi.Yani bir element almashi uchun o'zidan keyingi barcha element bilan tekshirib alamashtirib chiqish kerak albatta bu eng yomon holatda ishlashi.Masalan 1 dan 10 gacha teskari tartiblangan sonlar arrayi bo'lsa [10,9,8,7,6,5,4,3,2,1] bundagi sonlarni [1,2,3,4,5,6,7,8,9,10] holatiga keltirish uchun 10*10=100 yani n * n = n2 ish bajaramiz.Bunda ish qanday ketadi=> 10 > 9 tenglanadi birinchi shartda 10 katta shuning uchun [9,10,8,7....] holatga keladi va keyingi shart 10>8 ko'rinishida bo'ladi va [9,8,10,7,6....] holatiga keladi.Shu usulda 10 soni...
Quick sort algoritmi arraydagi tartibsiz elementlarni tartiblash uchun ishlatiladi.Uni bajarish uchun recursiya dan foydalaniladi.Uning bajaridigan ishlar soni B0(nlogn) ga teng bo'ladi agar pivet(birinchi tanlab olingan element) random tarzda tanlansa chunki u doim o'zgaradi va arrayning o'rtasidan va har xil joylaridan tekshiradi binery search kabi agar doim 0 elementni olsak 100 ta elementlik oldindan tartiblangan arrayni tartiblash uchun 100 * 100 marta ish bajaradi.Bu esa B0(n2) n kvadrat ga teng bo'lib qoladi.Masalan: O'zgarmas doim 0 elementni olishga misol ↙
Birgina masalani bir necha usulda yechib ko'rdim.Barchasi to'gri naticha qaytaradi lekin ishlash vaqtida farq qiladi demak Masala sharti: fibonachi raqam qiymatini topish(leetcode 509 masala).Fibonachi raqam bu o'zidan oldingi 2 raqam yig'indisi hisoblanadi.Masalan Fibonachi(4) => 3 ga teng 4 dan oldingi 2 ta raqam 3 + 2 = 5 bo'lmaydimi deydigan bo'lsak yo'q bu ketma-ketlik biz bilgan oddiy ketma ketlikda emas. F(0) => 0 F(1) => 1 F(2) = F(1) + F(0) => 1 F(3) = F(2) + F(1) => 2 F(4) = F(3) + F(2) => 3
Data typelar nima va nima uchun kerak deydigan bo'lsak.Data type (ma'lumot turi) dasturlashda saqlamoqchi bo'lgan qiymatlarning turini belgilash uchun kerak bo'ladi.Malumot agar raqamlarga oid bo'lsa number,agar qandaydir so'zni ifodalasa string data type ga oid hisoblanadi.Biror bir o'zgaruvchiga malumot biriktirganimizda biriktirilgan malumotning data typega tegishli prototype shakillanadi va uning ichida shu type da ishlatilishi mumkin bo'lgan funksiyalar(method) mavjud. Bu haqida prototype mavzusida to'liqroq to'xtalamiz.Misol uchun: