Diary of a programmer
26 subscribers
7 photos
18 links
At the Moment IT
Download Telegram
#leetcode_75
2-Masalani yechishga urinib ko'raylikchi qani do'stlar!
Do'stlar Algoritmlashda nazariy bilimlar ham juda muhim shuning uchun nazariy maqolalrimizni sizlar uchun havola etamiz! #algorithmicArticle hashtegi sizlar uchun muntazir.
It is for You!
Read and Learn!
#algorithmicArticle
Asymptotic analiz.Notationlar.
Notation - bu Algoritm qanday ishlashini o'lchab beradi. Ya'ni biz yozgan algoritm qanday maxsuldorligini vaqtdek izohlab beradi lekin vaqtini emas.
Asosiy ishlatiladigan notationlar:
1.Big O notation: Algoritmning ishlash vaqti yoki boʻsh joydan foydalanish tezligining yuqori chegarasini taʼminlaydi.Bu eng yaxshi bo'lmagan algoritmlarni ko'rsatadi vaholanki bundanda yaxshi yechim bo'lish ehtimoli katta.
2.Ω notation: Algoritmning ishlash vaqti yoki boʻsh joydan foydalanish tezligining past chegarasini taʼminlaydi.Bu eng yaxshi algoritmik yechimni beradi desak bo'ladi.
3.θ notation: Algoritmning ishlash vaqti va bo'sh vaqtdan foydalanishining ham pastki va ham yuqori chegarasini ko'rsatadi.U o'rtacha holatni ko'rsatadi.


Shuni ta'kidlash kerakki, asimptotik belgi algoritm uchun aniq ishlash vaqtini yoki bo'sh joydan foydalanishni aniq ko'rsatmaydi, balki algoritmning kirish o'lchamiga nisbatan qanday o'zgarishini tavsiflaydi
#algorithmicArticle
Tasavvur qiling bizda bir muammoning ikki xil algoritmik yechimi bor. Va bu ikki algoritm turli yondashuvlar va boshqa xususiyatlari bilan farq qiladi.
Ulardan qaysi biri ibiz uchun ma'qul , ya'ni mahsuldor ekanini qanday bilamiz?
Bu ikki algoritmni turli test caselari orqali tekshirishimiz va bunda hotira va vaqtning qanday band qilishini bir jadvalga joylasak ancha javobga yaqinlashamiz. Lekin bu aynan bir kompyuterda qilinmoqda. MAsalan har hil OS da turli yondashuv bilan qurilgan turli tillarda yozilgan algoritm bo'lsa bizning algoritmlarimiz. Vaholanki eng afzali bizning muammoyimining qaysi yechimi biz uchun muhimligi bilan o'lchanadi.
Va Asymptotic anlysis bunda bizga yordam beradi.
Asymptotic analysis - bu algoritmlarni tahlil qilishda ba'zi muammolarni hal qiladigan katta g'oya. Asimptotik tahlilda biz algoritmning ishlashini kirish hajmi bo'yicha baholaymiz . Biz algoritm tomonidan qabul qilingan vaqt (yoki bo'sh joy) kirish hajmi bilan qanday oshishini hisoblaymiz.
#leetcode_75
2 - masalaning yechimini havola etamiz:
public class Solution {
public string GcdOfStrings(string str1, string str2) {
if (!((str1 + str2) == (str2 + str1))){
return "";
}
int gcd = Gcd(str1.Length, str2.Length);
return str1.Substring(0, gcd);
}

private int Gcd(int a, int b) {
return b == 0 ? a : Gcd(b, a % b);
}
}
Hojimurod
#leetcode_75 2 - masalaning yechimini havola etamiz: public class Solution { public string GcdOfStrings(string str1, string str2) { if (!((str1 + str2) == (str2 + str1))){ return ""; } int gcd = Gcd(str1.Length, str2.Length);…
Do'stlar bizning barcha yechimlarimiz C# dasturlash tilida havola etilmoqda.
Agarda sintaksis jihatdan yechimlarda tushunarsiz holatga duch kelsangiz men ilan bog'laning va men sizlarga masalaning algoritmini tushuntirib beraman. VAnihoyat o'zingizga yoqqan tilda bu algoritmni codelashtirib qo'yaverasiz.

Murojjat uchun: @SeniorEH
👏1
Assalomu aleykum hammaga xayrli kun.
Do'stlar kuningiz xayrli va barokotli o'tsin!
🔥1
#leetcode_75 4 - masalaning yechimini havola etamiz!
Shu kunlarda algoritmlashdan ko'ra ko'proq vaqtim projectlar ustida o'tmoqda shuning uchun endi postimiz asosan sql , C# , Efcore , va projectdagi muammolar haqida bo'lib o'tadi.
Shuning uchun channel nomini ham update qilamiz.
👍1
Channel name was changed to «Diary of a programmer»
#project
1.Bizda ikkita table bor.
Ular bir biriga birga bir(one to one) bog'langan.
Bizning birinchi tableyimiz person.
int Id,
string name
unda x ta row bor

ikkinchi talbleyimiz product
int Id
int person_id
int price.
unda y ta row bor.

bizdan productlarni getAll qilish so'ralmoqda.

bizning vazifa barcha personlar bo'yicha productlarni GetAll() qilib berish.
Agarda x == y bo'lsa oddiy holat.
Lekin x > y bo'lsa biz x ta ma'lumot qaytarishimiz kerak ya'ni agarda qaysidir userning producti bo'lmasa unga yangi product yaratib priceni = 0 qilishimiz kerak. Va bu faqat apiga chiqishi kerak. u databaseda saqlanishi shart emas.
!!!Yozgan Algoritmingizning O() notationiga e'tiborli bo'ling!!!
Do'stlar sizlar uchun birinchi task Web Api bo'ldi bundagi ba'zi matiqsizliklar bo'lishi mumkin.
Lekin bunga aslo e'tibor qilmay aytilgan ishni bajarishga harakat qiling.
Qachon kerak bo'lishini ishga kirganda bilib olasiz Inn Shaa Allah!
Assalomu aleykum!
Uzoq vaqtli uzilishdan so'ng biz yana qaytdik!
Va birinchi bo'lib sizlarga etlarni titratadigan , xulosa qilishga undovxhi kichjik lavhadan boshlaymiz:
https://youtube.com/shorts/D6sI_pgIBl4?feature=shared

Biz nima deya olamiz Azizlar!
👍1😢1
Kim umrini o’yin-kulgu bilan o’tkazsa, ekin ekishni zoye qiladi. Kim ekin ekishni zoye qilsa, hosilini yig’adigan kunda nadomat qiladi.

Sufyon Savriy rahimahulloh
👍31
Forwarded from Jasur Muhammad
“O‘qiymiz club”ga start berildi! 🎉

Har hafta bitta kitob o‘qiymiz va hafta yakunida uni birgalikda tahlil qilamiz. Tahlilda xohlovchilar oflayn tarzda, yoki onlayn jonli efir orqali qatnashishlari mumkin. Eng quvonarlisi qatnashish bepul!

Qo‘shilish shartlari juda oddiy:
Blogingiz bo‘lsa, ushbu postni ulashing va screenshotni adminga yuboring. Blogingiz bo‘lmasa, storisga joylab, screenshot yuboring, admin sizni guruhga qo‘shadi.

🎁 Faol kitobxonlarga kitob sovg‘alari ham taqdim etiladi!

Murojaat uchun admin: @o_kulb
Eslatma juniorlar uchun

Agar ishlab turgan loyiha ichida kattaroq yoki riskli o‘zgarish qilayotgan bo‘lsangiz, bu ish faqat “kod yozish” bilan tugamaydi. Sizdan quyidagi bosqichlar talab qilinadi:

1 .  Funksiyani to‘liq va izchil ishlab chiqish
2.  Development/prod-like muhitda sinovdan o‘tkazish
3 . Tushunarsiz joylarni oxirigacha o‘rganib chiqish
4 . Ishni production’ga chiqarish
5 .  Monitoring qilib, xatolik yo‘qligiga ishonch hosil qilish

Ko‘rinishda hammasi zo‘r.
Lekin eng muhim bosqich ko‘p juniorlarda yo‘q.

Eng katta requirement:

Yangi funksional ishlamasa ham, hozirgi sistema avvalgidek ishlashi shart.

Ya’ni, siz qilgan o‘zgarishlar sistemani sindirmasligi, “rollback” imkoniyati har doim mavjud bo‘lishi kerak.

Misol: katta migratsiya qildingiz – ustunlarni o‘chirdingiz yoki o‘zgartirdingiz.
Hammasi joyida deb o‘ylaysiz…
Va Abet qilayotganizda 😁  nimadir noto‘g‘ri ketganini ko‘rdingiz — va tamom.

Bu holatda sizni qutqarib qoladigan narsa nima?
- Backup
- Rollback strategiya

Backup bo‘lsa, xato qilsangiz ham hamma narsani ortga qaytarasiz.
Backup bo‘lmasa… .
Xulosa:

Har qanday riskli o‘zgarishdan oldin backup olish — oddiy ko‘rinadi, lekin bu eng muhim odatlardan biridir.
Uni esdan chiqarmang. 🍻

@practical_coders
1