1. 알고리즘 설명
버블 정렬: 인접한 데이터를 순서대로 비교하여 앞에는 작은 데이터, 뒤에는 큰 데이터를 넣습니다. 즉, 첫 번째 패스에서 1번째와 2번째를 비교합니다. 숫자가 마지막이고 소수가 첫 번째이고, 두 번째 숫자를 세 번째 숫자와 비교하고, 큰 숫자가 마지막이고, 소수가 첫 번째입니다. 그런 식으로 가장 큰 숫자가 두 번째 숫자로 "롤링"됩니다. 한 번 통과하면 다음으로 큰 숫자가 끝에서 두 번째 위치로 스크롤됩니다. n-1(n은 순서가 지정되지 않은 데이터 수) 통과로 정렬이 완료될 수 있습니다.
다음 5개의 정렬되지 않은 데이터를 예로 들어 보겠습니다.
40 8 15 18 12(이 기사에서는 첫 번째 패스의 비교 프로세스만 자세히 설명합니다.)
1차 패스: 8 15 18 12 40
두 번째 여행: 8 15 12 18 40
세 번째 여행: 8 12 15 18 40
4차 여행: 8 12 15 18 40
2. 알고리즘 분석
평균 시간 복잡도: O(n2)
공간 복잡도: O(1)( 교환에 사용됨) )
안정성: 안정적
3. 알고리즘 구현
//交换data1和data2所指向的整形 void DataSwap(int* data1, int* data2) { int temp = *data1; *data1 = *data2; *data2 = temp; } /******************************************************** *函数名称:BubbleSort *参数说明:pDataArray 无序数组; * iDataNum为无序数据个数 *说明: 버블 정렬 *********************************************************/ void BubbleSort(int* pDataArray, int iDataNum) { for (int i = 0; i < iDataNum - 1; i++) //走iDataNum-1趟 for (int j = 0; j < iDataNum - i - 1; j++) if (pDataArray[j] > pDataArray[j + 1]) DataSwap(&pDataArray[j], &pDataArray[j + 1]); }
4. 알고리즘 최적화
도 버블 정렬 알고리즘 수행 가능 비교 중에 교환이 있는지 여부를 표시를 사용하여 기록합니다. 교환이 없으면 전체 배열이 순서대로 정렬 프로세스를 종료한 것입니다. 그렇지 않으면 다음 비교를 계속합니다.
/******************************************************** *函数名称:BubbleSort *参数说明:pDataArray 无序数组; * iDataNum为无序数据个数 *说明: 버블 정렬 *********************************************************/ void BubbleSort(int* pDataArray, int iDataNum) { BOOL flag = FALSE; //记录是否存在交换 for (int i = 0; i < iDataNum - 1; i++) //走iDataNum-1趟 { flag = FALSE; for (int j = 0; j < iDataNum - i - 1; j++) if (pDataArray[j] > pDataArray[j + 1]) { flag = TRUE; DataSwap(&pDataArray[j], &pDataArray[j + 1]); } if (!flag) //上一趟比较中不存在交换,则退出排序 break; } }
더 많은 버블정렬 관련 글은 PHP 중국어 홈페이지를 주목해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
