Сортировка пузырьком с использованием динамического массива

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся писать алгоритм для реализации метода сортировки пузырьком на C++. Сортировка пузырьком - один из самых популярных и простых методов сортировки, при котором мы сравниваем два соседних элемента в массиве и меняем их местами, если они не расположены в правильном порядке.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/data_types("Data Types") cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/if_else("If...Else") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/data_types -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/arrays -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/conditions -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/if_else -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/for_loop -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/output -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/files -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} cpp/code_formatting -.-> lab-96173{{"Сортировка пузырьком с использованием динамического массива"}} end

Объявить необходимые переменные и заголовочные файлы

Мы создадим новый файл с именем main.cpp в директории ~/project с помощью следующей команды:

touch ~/project/main.cpp

Сначала мы объявляем переменные и заголовочные файлы, необходимые для программы. В этом шаге мы подключим заголовочный файл iostream и определим пространство имен std.

#include<iostream>
using namespace std;

Объявить функцию для реализации общего алгоритма сортировки пузырьком

Здесь мы объявляем функцию "bubble_sort" в программе на C++, которая принимает массив для сортировки и размер массива. Функция будет содержать реализацию метода сортировки пузырьком с использованием циклов for, обмена элементов и инструкций if/else.

int bubble_sort(int n,int array[]){
    int temp;
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j--){
            if(array[j]>array[j+1]){
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
            }
        }
    }
return 0;
}

Объявить функцию для реализации оптимизированного алгоритма сортировки пузырьком

В оптимизированном алгоритме сортировки пузырьком мы будем проверять на каждой итерации, были ли обмены элементов или нет. Если в последней итерации не произошло ни одного обмена, это означает, что массив уже отсортирован. В этом шаге мы реализуем функцию "bubble_sort" для реализации оптимизированного алгоритма сортировки пузырьком. Функция принимает массив для сортировки и размер массива.

int bubble_sort(int n,int array[]){
    int temp, flag;
    for(int i=0;i<n-1;i++){
        flag = 0;
        for(int j=0;j<n-i-1;j++){
            if(array[j]>array[j+1]){
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                flag=1;
            }
        }
        if(flag==0){
            break;
        }
    }
    return 0;
}

Определить главную функцию

Здесь мы определим главную функцию, в которой мы объявим массив для сортировки и его размер. В этом шаге мы также вызовем функцию "bubble_sort", чтобы отсортировать массив по возрастанию.

int main(){

    int arr[]={5,6,9,2,3};
    int n = sizeof(arr)/(sizeof(arr[0]));
    bubble_sort(n,arr);
    cout<<"Elements after sorting of the array:- "<<endl;
    for(int i=0;i<n;i++){
        cout<<arr[i]<<" ";
    }
    return 0;
}

Компилировать и запустить код

В этом шаге мы скомпилируем и запустим код в терминале системы Ubuntu. Чтобы скомпилировать код, введите следующую команду:

g++ ~/project/main.cpp -o main

Чтобы запустить код, введите следующую команду:

./main

Резюме

В этом практическом занятии мы успешно научились реализовывать сортировку пузырьком с использованием динамического массива на C++. Мы также узнали о оптимизированном методе сортировки пузырьком, который эффективно работает для некоторых выбранных, но эффективных массивов. Следуя вышеприведенному туториалу, вы можете реализовать метод сортировки пузырьком для сортировки массива по возрастанию или убыванию с использованием динамического массива на C++.