> 백엔드 개발 > C++ > 본문

C++에서 버블 정렬 알고리즘을 사용하는 방법

WBOY
풀어 주다: 2023-09-19 17:12:11
원래의
1472명이 탐색했습니다.

C++에서 버블 정렬 알고리즘을 사용하는 방법

C++에서 버블 정렬 알고리즘을 사용하는 방법

버블 정렬 알고리즘은 간단하지만 비효율적인 정렬 알고리즘으로 여러 비교 및 ​​교환을 사용하여 시퀀스를 작은 것에서 큰 것 순으로 정렬합니다. . 여기서는 C++ 언어를 사용하여 버블 정렬 알고리즘을 구현하는 방법을 소개하고 자세한 코드 예제를 첨부하겠습니다.

  1. 알고리즘 원리:
    버블 정렬 알고리즘의 기본 아이디어는 정렬할 시퀀스에서 인접한 요소를 하나씩 비교하는 것입니다. 이전 요소가 후자 요소보다 크면 두 요소의 위치는 다음과 같습니다. 교환. 이러한 비교 후에 가장 큰(또는 가장 작은) 요소는 시퀀스 끝까지 "버블링"됩니다. 그런 다음 전체 시퀀스가 ​​순서대로 정리될 때까지 나머지 시퀀스에 대해 동일한 비교 및 ​​교환 작업을 수행합니다.
  2. 알고리즘 구현:
    다음은 C++ 언어를 사용하여 버블 정렬 알고리즘을 구현하는 코드 예제입니다.
#include<iostream>
using namespace std;

// 冒泡排序函数
void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            // 如果前一个元素大于后一个元素,交换它们的位置
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

// 主函数
int main() {
    int arr[] = { 64, 34, 25, 12, 22, 11, 90 };
    int n = sizeof(arr) / sizeof(arr[0]);

    bubbleSort(arr, n);

    cout << "排序后的数组:";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    
    return 0;
}
로그인 후 복사
  1. 분석 예:
    먼저 기본 함수에서 정렬할 정수 배열을 정의합니다. arr,并按照需要进行初始化。然后通过计算数组的长度n,调用bubbleSort函数对数组进行排序。在bubbleSort함수에서 다음을 사용합니다. 두 개의 임베딩 루프 세트는 버블 정렬의 핵심 논리를 구현합니다. 외부 루프는 비교 및 ​​교환 라운드 수를 제어하고 내부 루프는 각 라운드의 특정 비교 및 ​​교환을 담당합니다. 마지막으로 정렬된 배열이 메인 함수에 출력됩니다.
  2. 결과 데모:
    위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
排序后的数组:11 12 22 25 34 64 90
로그인 후 복사

버블 정렬 후 배열 요소가 작은 것부터 큰 것 순서대로 올바르게 정렬되는 것을 볼 수 있습니다.

요약:
버블 정렬 알고리즘은 간단하지만 비효율적인 정렬 알고리즘입니다. 실제 응용에서는 버블 정렬 알고리즘을 소규모 데이터 정렬에 사용할 수 있습니다. 그러나 대규모 데이터의 경우 버블 정렬 알고리즘은 시간 복잡도가 높아 권장되지 않습니다.

위 내용은 C++에서 버블 정렬 알고리즘을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿