ბუშტულასებრი სორტირება

მასალა ვიკიპედიიდან — თავისუფალი ენციკლოპედია
Jump to navigation Jump to search
„ბუშტულასებრი“ სორტირების სიმულაცია

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

იმპლემენტაცია C++-ზე[რედაქტირება | წყაროს რედაქტირება]

#include <iostream>
using namespace::std;
int main(){
    int n;
    // ცვლადში ჩავწეროთ მასივის ზომა
    cout<<"Shemoitanet masivis zoma"<<endl;
    cin>>n;
    // შევქმნათ n-ზომის მასივი მთელი ელემენტებით
    int mas[n];
    // for-ციკლით შევავსოთ მასივი
    cout<<"Shemoitanet masivis elementebi"<<endl;
    for(int i=0; i<n; i++)
        cin>>mas[i];
    /*სორტირებისთვის შევქმნათ გარე for-ციკლი საწყისი ცვლადით i,
     რომელიც შეინახავს ბოლო ელემენტს, რომელიც არასწორია თანმიმდევრულად.
     ცხადია, თავდაპირველად i ბოლო ელემენტის ინდექსის ტოლია*/
    for(int i=n-1; i>0; i--){
        // შევქმნათ შიდა for-ციკლი, რომელიც გადაარჩევს ელემენტებს i-მდე
        for(int j=0; j<i; j++)
            //თუ j-ური წევრის შემდეგი ელემენტი მასზე მცირეა, მაშინ მნიშვნელობებს ჩავანაცვლებთ
            if(mas[j]>mas[j+1])swap(mas[j],mas[j+1]);
    }
    // გამოვიტანოთ დალაგებული მასივი
    cout<<"dalagebuli masivi:"<<endl;
    for(auto i:mas)
        cout<<i<<" ";

რესურსები ინტერნეტში[რედაქტირება | წყაროს რედაქტირება]