ისწავლე ალგორითმებიმათი მუშაობის ყურებით
ბიჯ-ბიჯ გზამკვლევი პროგრამისტებისთვის. ყოველი გაკვეთილი იდეას ილუსტრაციებით ხსნის, მერე ალგორითმს შენს მონაცემებზე გაგიშვებინებს, გამოგცდის და რეალურ ამოცანებს შემოგთავაზებს.
ხუთი გზა ყოველ ალგორითმამდე
მხოლოდ კითხვა არ კმარა და მხოლოდ ანიმაციაც არა. ყოველი თემა ერთსა და იმავე ხუთ ნაბიჯს გადის.
ისწავლე
მოკლე ილუსტრირებული ახსნა: ჯერ ინტუიცია, მერე მექანიზმი და ფასი.
უყურე
ლექციის თემებზე ვიდეო, რომელიც ლექციას სლაიდ-სლაიდ მიჰყვება.
ითამაშე
გაიარე ალგორითმი ბიჯ-ბიჯ წინ და უკან, მერე გაუშვი შენს მონაცემებზე.
შეამოწმე
სამი სწრაფი კითხვა, რომ დარწმუნდე, იდეა მართლა გაიგე.
ივარჯიშე
შერჩეული ამოცანები CSES-სა და LeetCode-ზე, მარტივიდან რთულისკენ.
ეს BFS-ია, მუშაობაში
ყოველ გაკვეთილს ასეთი ვიზუალიზატორი აქვს. გადადი წინ და უკან, შეცვალე მონაცემები ან უბრალოდ უყურე.
გრაფი (საწყისი წვერო: 4)
რიგი (FIFO)
მდგომარეობა
| v | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| d[] მანძ. | ∞ | ∞ | ∞ | 0 | ∞ | ∞ | ∞ | ∞ | ∞ |
| p[] მშობ. | ∞ | ∞ | ∞ | nil | ∞ | ∞ | ∞ | ∞ | ∞ |
| used[] | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
ფსევდოკოდი
1 q.push(s); used[s]=1; d[s]=0; p[s]=-1 2 while (!q.empty()) { 3 v = q.front(); q.pop() 4 for (u in adj[v]) { 5 if (!used[u]) { 6 used[u] = 1 7 d[u] = d[v]+1; p[u] = v 8 q.push(u) 9 } } } // d[] = shortest distances
საფუძველი
ეს გზამკვლევი ზაზა გამეზარდაშვილის საუნივერსიტეტო ლექციებს ეყრდნობა. ვარსკვლავით მონიშნული თემები მათ ზუსტად მიჰყვება: მისი მაგალითები, მისი თანმიმდევრობა, მისი ტერმინოლოგია. დანარჩენი ყველაფერი მათ გარშემო აიგო.
ყოველი ეს ლექცია აქ ვიდეოდ, საკლასო პრეზენტაციად და ინტერაქტიულ გაკვეთილად არის გადმოცემული.
★ ლექციები: ზაზა გამეზარდაშვილი
რატომ შეიქმნა Algo Visualized
ზაზა გამეზარდაშვილის ლექციების გულშემატკივარი ვარ. ბატონი ზაზა ალგორითმებს იშვიათი სიცხადით ხსნის და მინდოდა მისგან მეტ ადამიანს შესძლებოდა სწავლა.
ამიტომ ეს ლექციები საფუძვლად ავიღე და მათზე ახალი რამ ავაშენე: თანამედროვე, მოწესრიგებული გზამკვლევი, რომელსაც თავიდან ბოლომდე მიჰყვები, სადაც ყოველ თემას შემდეგთან ლოგიკური ხიდი აკავშირებს, და ყოველი იდეის ნახვა, მასთან თამაში და ვარჯიში შეიძლება.
ერთი მკაფიო თანმიმდევრობა: Big-O-დან P და NP-მდე
ყოველი ეტაპი მხოლოდ წინა ეტაპებს ეყრდნობა. მიჰყევი თავიდან ბოლომდე ან პირდაპირ საჭირო თემაზე გადადი.
საფუძვლები
ჯერ გაზომე ალგორითმი, მერე დაწერე
2 გაკვეთილი1მასივები და ჰეშირება
ორი სტრუქტურა, რომელზეც რეალური კოდის უმეტესობა დგას
3 გაკვეთილი2სორტირება და ძებნა
დაალაგე მონაცემები და იპოვე ყველაფერი O(log n)-ში
6 გაკვეთილი2 ★ ლექცია3წრფივი სტრუქტურები
სტეკი, რიგი, სია: ვინ არის შემდეგი
4 გაკვეთილი1 ★ ლექცია4სრული გადარჩევა
სცადე ყველაფერი, ჭკვიანურად
2 გაკვეთილი1 ★ ლექცია5ხეები
იერარქიები, რომლებიც ძებნას ლოგარითმულს ხდის
6 გაკვეთილი4 ★ ლექცია6გრაფები I: შემოვლა
შემოიარე ნებისმიერი ქსელი შრეებად ან სიღრმეში
5 გაკვეთილი2 ★ ლექცია7ხარბი ალგორითმები
აიღე საუკეთესო სვლა ახლა და დაამტკიცე, რომ სწორია
2 გაკვეთილი1 ★ ლექცია8გრაფები II: წონადი
უმოკლესი გზები და უიაფესი ქსელები
4 გაკვეთილი1 ★ ლექცია9მათემატიკური ინსტრუმენტები
ბიტები, მარტივი რიცხვები და სწრაფი ხარისხი
3 გაკვეთილი10დინამიური პროგრამირება
ამოხსენი ყოველი ქვეამოცანა ერთხელ და გამოიყენე მრავალჯერ
9 გაკვეთილი2 ★ ლექცია11სტრიქონები
იპოვე შაბლონი ტექსტში ზედმეტი შედარებების გარეშე
3 გაკვეთილი12დასკვნითი: რთული ამოცანები
იცოდე, როდის არ არსებობს სწრაფი ალგორითმი
1 გაკვეთილი+არჩევითი თემები
მოწინავე ინსტრუმენტები ოლიმპიადებისთვის
4 გაკვეთილიპროგრამირება იცი. ახლა ისწავლე ალგორითმული აზროვნება.
- ✓იცი ერთი პროგრამირების ენაციკლები, ფუნქციები და მასივები საკმარისია. ფსევდოკოდი და C++ ფრაგმენტები მოკლეა.
- ✓გინდა იცოდე რატომ, არა მხოლოდ როგორყოველი გაკვეთილი აჩვენებს, რატომ არის ალგორითმი სწორი და რა ღირს.
- ✓სწავლობ კეთებითშეცვალე მონაცემები, დაბრუნდი უკან, გამოიცანი შემდეგი ბიჯი, მერე ამოხსენი ამოცანები.
- ✓კითხულობ ქართულად ან ინგლისურადენა ნებისმიერ დროს გადართე. ქართული ტერმინები ლექციებს მიჰყვება.
სხვა კარგი გზამკვლევები
სწავლა საუკეთესოდ მაშინ გამოდის, როცა შენ გერგება. ეს ის რესურსებია, რომლებსაც ჩვენი გზამკვლევი შევადარეთ. ყველა შესანიშნავი და უფასოა.
MIT 6.006
საუნივერსიტეტო კურსი · ვიდეოMIT-ის „ალგორითმების შესავალი“: ლექციები, კონსპექტები და ამოცანები, დამტკიცებებზე აქცენტით.
გადასვლა ↗USACO Guide
სპორტული პროგრამირებაუფასო, სტრუქტურირებული გზა Bronze-დან Platinum-მდე, ყოველ თემაზე შერჩეული ამოცანებით.
გადასვლა ↗CSES Handbook & Problem Set
წიგნი + 300 ამოცანაანტი ლაქსონენის „სპორტული პროგრამისტის სახელმძღვანელო“ და მისი კლასიკური ამოცანათა კრებული.
გადასვლა ↗NeetCode Roadmap
გასაუბრებისთვის მომზადებაგასაუბრების პატერნები დამოკიდებულებათა გრაფად, NeetCode 150 ამოცანითა და ვიდეო ამოხსნებით.
გადასვლა ↗CP-Algorithms
ცნობარიდეტალური სტატიები ასობით ალგორითმზე, დამტკიცებებითა და კოდით. სიღრმისთვის.
გადასვლა ↗Algorithms by Jeff Erickson
უფასო სახელმძღვანელომკაფიო და მკაცრი საუნივერსიტეტო სახელმძღვანელო, უფასოდ. საუკეთესო თავები რეკურსიაზე, უკუსვლასა და დპ-ზე.
გადასვლა ↗VisuAlgo
ვიზუალიზაციებიკლასიკური სტრუქტურებისა და ალგორითმების ანიმაციები სინგაპურის ეროვნული უნივერსიტეტისგან.
გადასვლა ↗Tech Interview Handbook
მოკლე კონსპექტებითემა-თემა კონსპექტები: ტექნიკები, განსაკუთრებული შემთხვევები და აუცილებელი ამოცანები.
გადასვლა ↗დაიწყე ნულოვანი ეტაპით. თორმეტი წუთი.
დასაწყებად Big-O და რეკურსია საკმარისია. შენი პროგრესი ამ ბრაუზერში ინახება.