ალგორითმების გზამკვლევი
13 ეტაპი იმ თანმიმდევრობით, როგორც უნდა ისწავლო. ყოველი ეტაპი მხოლოდ წინა ეტაპებს ეყრდნობა. ★ აღნიშნავს ზაზა გამეზარდაშვილის ლექციებზე აგებულ თემებს.
შენი პროგრესი50 ძირითადი გაკვეთილიდან 0 დასრულებულია
★ ლექციის თემა▶ აქვს ვიდეო✓დასრულებული
0
ეტაპი 0
საფუძვლები
ჯერ გაზომე ალგორითმი, მერე დაწერე
1
ეტაპი 1
მასივები და ჰეშირება
ორი სტრუქტურა, რომელზეც რეალური კოდის უმეტესობა დგას
2
ეტაპი 2
სორტირება და ძებნა
დაალაგე მონაცემები და იპოვე ყველაფერი O(log n)-ში
✓მარტივი სორტირებები★▶ბუშტულებრივი, არჩევითი, ჩასმით: O(n²) ზღვარი✓შერწყმით სორტირება: დაყავი და იბატონეგაყავი, დაალაგე ნახევრები, შეაერთე✓სწრაფი სორტირება და დაყოფადაყავი საყრდენის გარშემო; პრაქტიკაში სწრაფია✓დათვლითი სორტირება★▶აჯობე n log n-ს, როცა გასაღებები პატარა მთელებია✓კომპარატორები და სტაბილურობადაალაგე ნებისმიერი წესით std::sort-ით✓ორობითი ძებნა და ძებნა პასუხზეყოველ ბიჯზე ძებნის არე ნახევრდება
3
ეტაპი 3
წრფივი სტრუქტურები
სტეკი, რიგი, სია: ვინ არის შემდეგი
4
ეტაპი 4
სრული გადარჩევა
სცადე ყველაფერი, ჭკვიანურად
5
ეტაპი 5
ხეები
იერარქიები, რომლებიც ძებნას ლოგარითმულს ხდის
✓ხეები: ცნებები, თვისებები, შემოვლები★▶სათავე, სიღრმე, სიმაღლე და სამი შემოვლა✓ძებნის ორობითი ხე★▶ძებნა, ჩასმა და წაშლა O(h)-ში✓დაბალანსებული ხეები და set / mapრატომ ინარჩუნებს ბალანსი h = O(log n)-ს✓ორობითი გროვა და პრიორიტეტული რიგი★▶მინიმუმი ყოველთვის O(1)-ში✓ფენვიკის ხე (ბინარული ინდექს-ხე)★▶შეცვალე ელემენტი და მიიღე ნებისმიერი ინტერვალის ჯამი, ორივე O(log n)-ში✓ტრაი და ავტოშევსებაშეინახე სიტყვები საერთო პრეფიქსებით
6
ეტაპი 6
გრაფები I: შემოვლა
შემოიარე ნებისმიერი ქსელი შრეებად ან სიღრმეში
✓გრაფის წარმოდგენამოსაზღვრეობის მატრიცა, სია და წიბოთა სია✓სიგანეში ძებნა (BFS)★▶უმოკლესი გზები უწონო გრაფში, ტალღა-ტალღა✓სიღრმეში ძებნა (DFS)ჩაღრმავდი, დაბრუნდი, ჩაინიშნე დროები✓ციკლები, ტოპოლოგიური სორტირება, ორწილადობადაალაგე დამოკიდებული ამოცანები✓ხის დიამეტრი და ცენტრი★▶ორი BFS პოულობს უგრძეს გზას
7
ეტაპი 7
ხარბი ალგორითმები
აიღე საუკეთესო სვლა ახლა და დაამტკიცე, რომ სწორია
8
ეტაპი 8
გრაფები II: წონადი
უმოკლესი გზები და უიაფესი ქსელები
9
ეტაპი 9
მათემატიკური ინსტრუმენტები
ბიტები, მარტივი რიცხვები და სწრაფი ხარისხი
10
ეტაპი 10
დინამიური პროგრამირება
ამოხსენი ყოველი ქვეამოცანა ერთხელ და გამოიყენე მრავალჯერ
✓დპ-ის საფუძვლები: მემოიზაცია და ცხრილიაქციე ექსპონენციალური რეკურსია წრფივად✓ერთგანზომილებიანი დპ: მონეტები და LISპასუხების ერთი მასივი, მარცხნიდან მარჯვნივ✓დპ ბადეზედათვალე და გააუმჯობესე გზები ბადეში✓0-1 ზურგჩანთის ამოცანა★▶აირჩიე ნივთები წონის ლიმიტში, ოპტიმალურად✓უდიდესი საერთო ქვემიმდევრობა★▶შეადარე ორი მიმდევრობა 2D ცხრილით✓რედაქტირების მანძილირამდენი ცვლილება აქცევს ერთ სიტყვას მეორედ✓ფლოიდ-ვორშელი: დპ გრაფზეუმოკლესი გზები ყველა წყვილს შორის✓დპ ხეებზეპასუხები ფოთლებიდან ზემოთ ადის✓ბიტმასკური დპდპ ქვესიმრავლეებზე: კომივოიაჟერი
11
ეტაპი 11
სტრიქონები
იპოვე შაბლონი ტექსტში ზედმეტი შედარებების გარეშე
12
ეტაპი 12
დასკვნითი: რთული ამოცანები
იცოდე, როდის არ არსებობს სწრაფი ალგორითმი
+
არჩევითი
არჩევითი თემები
მოწინავე ინსტრუმენტები ოლიმპიადებისთვის