IT აკადემია STEP! ჩვენ 1999 წლიდან ვსწავლობთ. მაღალი ხარისხის კომპიუტერულ განათლებას მოზრდილებში და ბავშვებში.

Your browser is out of date!

You are using an outdated browser Internet Explorer. This version of the browser does not support many modern technologies, that's why many pages of the website are not displayed correctly, and may not work some of functions . We recommend viewing the website using the latest versions of the browsers Google Chrome, Safari, Mozilla Firefox, Opera, Microsoft Edge

ШАГ логотип

რომელი სორტირების ალგორითმი გამოიყენოთ და როდის

3

პროგრამირება

27.05.2022

1269 დათვალიერება

ბინარული ძებნა გამოიყენება მასივის ეფექტურად გასავლელად, მაგრამ ბინარული ძიება მუშაობს მხოლოდ მაშინ, როდესაც მასივი სორტირებულია.

 

მაშინ, როგორ მოხდება მნიშვნელობების მასივის სორტირება?

 

მოკლე პასუხი: არსებობს მრავალი სახის სორტირება, და გადაწყვეტილების მიღება, თუ რომელი მეთოდი გამოვიყენოთ, დამოკიდებულია სიტუაციაზე.

 

უფრო დეტალურად რომ გავიგოთ, ჩვენ უნდა შევხედოთ სორტრების სამ სხვადასხვა ალგორითმს:

  • შეყვანითი სორტირება
  • შერწყმითი სორტირება
  • სელექციური სორტირება

 

სელექციური სორტირება

"სელექციური სორტირება" - ყველაზე საბაზისო ტიპი, ალგორითმი განმეორებითად პოულობს უმცირეს მნიშვნელობას დაუხარისხებელი ქვემასივიდან და გადააქვს იგი სორტირებულ ქვემასივში, მასივის დასაწყისში.

 

ქვემასივი არის მასივის ნაწილი. იქნება ორი ქვემასივი: სორტირებული ნაწილი და დარჩენილი არასორტირებული ნაწილი.

 

ქვემოთ მოცემულია მასივის მაგალითი:

 

თავდაპირველად, ყველაზე მცირე მნიშვნელობა დაყენებულია საწყისი ინდექსის მნიშვნელობაზე („5“). როდესაც მთელი მასივი გაივლება და აღმოჩნდება უმცირესი მნიშვნელობა („1“), შეცვალეთ უმცირესი მნიშვნელობა საწყისი ინდექსის მნიშვნელობით. გაიმეორეთ პროცესი მომდევნო მნიშვნელობისთვის და გაიმეორეთ მანამ, სანამ არ გადაკვეთთ მთელ მასივს.

 

გაითვალისწინეთ! როდესაც რაიმე სწრაფად გჭირდებათ, სელექციური სორტირება მარტივი, თუმცა არც ისე ეფექტური არჩევანია. 

 

შეყვანითი სორტირება

მეორე მხრივ, შეყვანითი სორტირება პოულობს მომდევნო მნიშვნელობებს და ახარისხებს მათ. ასე რომ, თქვენ უნდა გამოიყენოთ შეყვანითი სორტირება დაუხარისხებელი მასივის უმცირესი რიცხვიდან უდიდეს რიცხვამდე გადასაწყობად.

 

წარმოიდგინეთ, რომ სათითაოდ გირიგებენ კარტს. კარტების ორგანიზებაში დასახმარებლად, თავიდანვე იწყებთ დარიგებული კარტების სორტირებას ყველაზე მცირე მნიშვნელობით.

 

თქვენი ამჟამინდელი დაუხარისხებელი ხელის გათვალისწინებით, როგორ დაიწყებდით თქვენი კარტების დახარისხებას? შეყვანითი სორტირება გავს იმას, თუ როგორც დაახარისხებდით კარტის ამ ხელს.  

 

დაიწყეთ პირველი კარტით ხელში. მის მარცხნივ კარტი არ არის, ამიტომ ის რჩება. მეორე ბარათი ახლა არის მთავარი და დადგება მის მარცხნივ მყოფ კარტთან. ვინაიდან 4 მეტია, 4 გადადის ერთი პოზიციით წინ.

 

ისევ და ისევ, განსხვავება აქ არის ის, რომ სელექციური სორტირება მუდმივად პოულობს უმცირეს მნიშვნელობას, ხოლო შეყვანითი სორტირება პოულობს შემდგომ მნიშვნელობებს და ახარისხებს მათ.

 

განთავისუფლდი ბანალური საგანმანათლებლო სისტემისგან, დაიწყე დიზაინის სწავლა სრულიად ახალი მეთოდებით და გახდი წარმატებული სტეპერი!

→ დარეგისტრირდი ახლავე!

 

 

შერწყმითი სორტირება

და ბოლოს, შერწყმითი სორტირება არის ‘დაყავი და იბატონე’ პრინციპის ალგორითმი, რომელიც აგრძელებს მასივის ნახევრებად დაყოფას მანამ, სანამ გაყოფილი ქვემასივი არ შედგება ერთი ელემენტისგან. იქიდან, ის აერთიანებს ნახევრებს ისევ ერთად, ხოლო შერწყმისას ახდენს მნიშვნელობების სორტირებას.

 

ამ შედეგის მისაღწევად, თქვენ გჭირდებათ რეკურსია, რომელიც არის პროგრამირების ტექნიკა, რომელშიც მეთოდი თავის თავს იძახებს. ის ხშირად გამოიყენება, როდესაც პრობლემის გადაჭრა შესაძლებელია ქვეპრობლემებად დაყოფით, რომლებიც თავის მხრივ იყენებენ იმავე ტექნიკას მათ გადასაჭრელად.

 

საბაზისო ქეისი აბრუნებს მნიშვნელობას რეკურსიული ზომების გამოძახების გარეშე. მეთოდი, რომელიც თავის თავს იძახებს, არ გააგრძელებს მისი დანარჩენი კოდის გაშვებას მანამ, სანამ გამოძახებული მეთოდი არ დააბრუნებს მნიშვნელობას.

 

მაგალითად, ვთქვათ, რომ წვეულებაზე გსურთ პიცა შეუკვეთოთ თქვენთვის და თქვენი მეგობრებისთვის. მაგრამ თქვენ შეუკვეთავთ პიცას მხოლოდ იმ შემთხვევაში, თუ თქვენი მეგობარი შეჭამს პიცას და თქვენი მეგობარი შეჭამს პიცას მხოლოდ იმ შემთხვევაში, თუ მისი მეგობარი შეჭამს პიცას. ეს გრძელდება მანამ, სანამ ერთი მეგობარი არ იტყვის, რომ საკმარისია და უბრალოდ იტყვის „კარგი, შევუკვეთოთ“. ეს "კარგი" შემდეგ გადაეცემა მეგობრიდან მეგობარს და მოვა თქვენამდე.

 

ინფორმაციის ეს ნაკადი ჰგავს კოდში რეკურსიის მუშაობას. რეკურსიული მეთოდი აგრძელებს თავის გამოძახებას, სანამ პასუხი არ მოიძებნება. თითოეული ადამიანი წარმოადგენს ერთ გამოძახებას საკუთარი თავისთვის. მეთოდი განაგრძობს თავის გამოძახებას მანამ, სანამ საბაზისო ქეისი არ მიიღწევა. ამ მაგალითში, საბაზისო ქეისი არის პირველი "კარგი!" და უბრუნდება პირველ გამოძახებას.

 

როდესაც გჭირდებათ სტაბილური სორტირება ან გჭირდებათ მონაცემთა დიდი ნაკადის სორტირება, ეს შესანიშნავი ვარიანტია. ეფექტურია; თუმცა, ის დიდ ადგილს იკავებს და არ არის ადვილად გასაცორხიელებელი. შერწყმითი სორტირება ასევე სასარგებლოა დაკავშირებული სიების დასახარისხებლად.

 

დაეუფლე აქტუალურ პროფესიებს - შემოგვიერთდით სტეპერების დიდ ოჯახში

IT Academy Step ლიდერი IT სფეროში , ახლა უკვე 100+ ფილიალით!

+995 577 538 549 .თელავინადიკვრის #23

+995 (32) 215-55-51 .თბილისი.ყაზბეგის 34/34 

https://www.facebook.com/itstep.ge



ავტორის სწავლების ტექნოლოგიები::

IT აკადემია STEP

შენ ქმნი სისტემას - Software Architect

კარგი არქიტექტურა სისტემის გადარჩენის გარანტიაა. ყველაფერი სწორი საზღვრების გავლებით იწყება, რათა ერთი დეტალის შეცვლამ მთლიანი სტრუქტურა არ ჩამოშალოს. იმისთვის, რომ პროექტი ბიზნესთან ერთად გაიზარდოს, მას მოქნილობა და კომპონენტების დამოუკიდებლობა სჭირდება. საბოლოო ჯამში, საუკეთესო სისტემა ისაა, რომელიც მუდმივად ვითარდება და დროსთან ერთად კი არ ძველდება, არამედ ახალ მოთხოვნებს მარტივად ეგუება.

საფუძველი: სწორი საზღვრების გავლება სისტემის არქიტექტურა არ არის მხოლოდ კოდის ორგანიზების გზა, ეს არის გადაწყვეტილებების ერთობლიობა, რომელთა შეცვლა მომავალში ძვირი და მტკივნეული იქნება. როდესაც იწყებ ფუნდამენტური სტრუქტურის პროექტირებას, შენი პირველი ამოცანაა არა ტექნოლოგიური სტეკის შერჩევა, არამედ იმ უხილავი საზღვრების გავლება, რომლებიც სისტემას ქაოსისგან დაიცავ

ШАГ логотип

შენ ქმნი სისტემას - კიბერუსაფრთხოების სპეციალისტი

დღეს კიბერუსაფრთხოება აღარ არის მხოლოდ დამხმარე ინსტრუმენტი, ის ნებისმიერი ციფრული სისტემის ფუნდამენტური საყრდენია. სტატია დეტალურად აღწერს, თუ როგორ იქმნება მრავალშრიანი თავდაცვის მექანიზმები ნულოვანი ნდობის (Zero Trust) პრინციპითა და მონაცემთა კრიპტოგრაფიული იზოლაციით. გაიგე, როგორ უზრუნველყოფს თანამედროვე ტექნოლოგიები და პროაქტიული მონიტორინგი მომხმარებლებისა და ინფორმაციის მაქსიმალურ დაცვას გარე შეტევებისგან.

თანამედროვე ტექნოლოგიურ ეპოქაში კიბერუსაფრთხოება აღარ განიხილება, როგორც პროგრამული უზრუნველყოფის დამატებითი კომპონენტი. ის წარმოადგენს სისტემის ფუნდამენტურ „დნმ“-ს, რომელიც არქიტექტურის დაგეგმვის საწყის ეტაპზევე უნდა განისაზღვროს. სისტემური დაცვის ძირითადი პრინციპი Defense in Depth (სიღრმისეული დაცვაა), რაც გულისხმობს მრავალშრიანი უსაფრთხოების მექანიზმების შექმნას. ამ სტ

ШАГ логотип

შენ ქმნი სისტემას - Product Owner

იყო Product Owner არ ნიშნავს მხოლოდ დავალებების მართვას, ეს არის სისტემის შექმნის ხელოვნება, სადაც მთავარი ამოცანა მინიმალური ძალისხმევით მაქსიმალური ბიზნეს-ღირებულების გენერირებაა. სტატიაში განვიხილავთ, როგორ უნდა განსაზღვრო პროდუქტის ხედვა, ჩამოაყალიბო პრიორიტეტების ეფექტური სტრატეგია და გაუძღვე გუნდს საერთო მიზნისკენ. გაიგეთ, როგორ აქციო ქაოსი მოწესრიგებულ და მომგებიან სისტემად.

იყო Product Owner (PO), არ ნიშნავს მხოლოდ Backlog-ის მართვას ან დეველოპერებისთვის დავალებების ჩამოწერას. ეს არის როლი, სადაც შენ ხდები პროდუქტის ხედვის მცველი და მთავარი ხიდი ბიზნესის ინტერესებსა და ტექნიკურ რეალობას შორის. შენ ქმნი სისტემას, რომელიც მომხმარებლის კონკრეტულ პრობლემას ჭრის და ბიზნესს რეალურ შედეგს აძლევს. მიზნის განსაზღვრა: "რატომ?" ყოველი წარმატებული პროდუქტი იწყება ფუ

ШАГ логотип

Society 5.0 – როცა პროფესია აღარ არის სტატუსი, არამედ წვლილი საზოგადოების განვითარებაში

საუკუნეების განმავლობაში პროფესიული იდენტობა წარმოადგენდა სოციალური სტატუსის ძირითად განმსაზღვრელს – "ვინ ხარ?" – ექიმი, იურისტი, ინჟინერი, მასწავლებელი. თუმცა, თანამედროვე 2025 წლის რეალობაში, Society 5.0-ის კონცეფცია გვთავაზობს პრინციპულად განსხვავებულ პერსპექტივას: პროფესია აღარ წარმოადგენს მხოლოდ ფორმალურ ტიტულს. ის გარდაიქმნება ინსტრუმენტად, რომლის მეშვეობითაც ინდივიდს შეუძლია მოახდინოს რეალური გავლენა გარემომცველ საზოგადოებაზე.

საუკუნეების განმავლობაში პროფესიული იდენტობა წარმოადგენდა სოციალური სტატუსის ძირითად განმსაზღვრელს – "ვინ ხარ?" – ექიმი, იურისტი, ინჟინერი, მასწავლებელი. თუმცა, თანამედროვე 2025 წლის რეალობაში, Society 5.0-ის კონცეფცია გვთავაზობს პრინციპულად განსხვავებულ პერსპექტივას: პროფესია აღარ წარმოადგენს მხოლოდ ფორმალურ ტიტულს. ის გარდაიქმნება ინსტრუმენტად, რომლის მეშვეობითაც ინდივიდს შ

ШАГ логотип

ამ საიტზე გამოიყენება Cookies

Კონფიდენციალურობის პოლიტიკა