동적 배열을 사용한 버블 정렬

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 로 버블 정렬 (bubble sort) 기법을 구현하는 알고리즘을 작성하는 방법을 배웁니다. 버블 정렬은 가장 널리 사용되고 간단한 정렬 기법 중 하나로, 배열에서 인접한 두 요소를 비교하고 올바르게 정렬되지 않은 경우 위치를 바꿉니다.

필요한 변수 및 헤더 파일 선언

다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.

touch ~/project/main.cpp

먼저 프로그램에 필요한 변수와 헤더 파일을 선언합니다. 이 단계에서는 iostream 헤더 파일을 포함하고 std 네임스페이스를 정의합니다.

#include<iostream>
using namespace std;

일반 버블 정렬 알고리즘을 구현하는 함수 선언

여기서는 정렬할 배열과 배열의 크기를 인수로 받는 C++ 프로그램에서 "bubble_sort" 함수를 선언합니다. 이 함수는 for 루프, 스와핑 (swapping), 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;
}

최적화된 버블 정렬 알고리즘을 구현하는 함수 선언

최적화된 버블 정렬에서는 각 패스 (pass) 에서 요소가 스와핑 (swapped) 되었는지 여부를 확인합니다. 마지막 패스에서 스왑이 발생하지 않으면 배열이 정렬되었음을 의미합니다. 이 단계에서는 최적화된 버블 정렬 알고리즘을 구현하기 위해 "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;
}

메인 함수 정의

여기서는 정렬할 배열과 크기를 선언할 main 함수를 정의합니다. 이 단계에서는 배열을 오름차순으로 정렬하기 위해 "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++ 에서 동적 배열을 사용하여 배열을 오름차순 또는 내림차순으로 정렬하는 버블 정렬 기술을 구현할 수 있습니다.