>  기사  >  php教程  >  교환 정렬 - 버블 정렬(Bubble Sort)

교환 정렬 - 버블 정렬(Bubble Sort)

高洛峰
高洛峰원래의
2016-12-19 14:04:001385검색

교환 정렬은 주로 정렬 대상 레코드의 키 코드를 쌍으로 비교하여 정렬 대상 레코드의 키 코드가 발생하는 경우 정렬 요구 사항에 어긋나는 경우 교환합니다. 먼저 열 정렬의 버블링 과정을 살펴보겠습니다. 1
의 버블 방법은 다음과 같습니다.

i=1; //첫 번째 레코드부터 쌍 비교를 설정합니다.

i≥j이면 A 버블링 여행이 끝났습니다.

r[i].key와 r[i+1].key를 비교하여 r[i].key≤r[i+1].key이면 교환하지 말고 ⑤로 이동

r[i].key>r[i+1].key일 때, r[0]=r[i] r[i]=r[i+1]=r; [ 0]; r[i] 및 r[i+1]

i=i+1; 다음 두 레코드의 쌍 비교를 조정하고, ②


로 이동합니다. 버블 정렬 방법: n 레코드 테이블의 경우 첫 번째 버블은 가장 큰 키 코드를 갖는 레코드 r[n]을 얻는 것입니다. 두 번째 버블은 n-1 레코드 테이블에 대한 것이고 다른 레코드는 가장 큰 키 코드를 갖는 레코드입니다. 레코드 r[n-1]을 얻고 n개의 레코드가 키 순서 테이블에 있을 때까지 이를 반복합니다.

[알고리즘 10.6]

j=n; //n개의 레코드 테이블에서 시작

j

i=1; //버블링 1회, 첫 번째 레코드부터 쌍 비교를 설정합니다.

i≥j이면 버블링 1회가 종료됩니다. j=j-1; 레코드 수가 -1이면 ②

로 이동하여 r[i].key와 r[i+1].key를 비교합니다(r[i].key≤r[i+1].key인 경우). 교환하지 마세요. ⑤

r[i].key>r[i+1].key일 때 r[i]r[i+1]; i] and r [i+1] Exchange

i=i+1; 다음 두 레코드의 쌍별 비교를 조정하고 ④


[효율 분석]공간 효율성: 보조 장치는 하나만 사용됩니다.

시간 효율성: 총 n-1개의 버블링 작업이 필요합니다. j 레코드가 있는 테이블에 대해 한 번의 버블링 작업에는 j-1 키 코드 비교가 필요합니다.

이동 횟수:

교환 정렬 - 버블 정렬(Bubble Sort)

최상의 경우: 정렬할 열이 이미 순서대로 지정되어 있으므로 이동할 필요가 없습니다


최악의 경우: 모든 비교 각 단계마다 3개의 동작이 필요하며,

교환 정렬 - 버블 정렬(Bubble Sort)



더 많은 교환정렬-버블정렬(Bubble Sort) 관련에 주목해주세요. 기사. PHP 중국어 웹사이트!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.