>일일 프로그램 >PHP 지식 >버블 정렬의 상세 분석

버블 정렬의 상세 분석

**熬夜选手
**熬夜选手원래의
2020-05-01 15:42:30394검색

버블 정렬

프로그래밍과 알고리즘을 처음 접하는 친구들에게는 정렬 알고리즘이 명확하지 않을 수 있습니다. 다음으로 버블 정렬을 함께 분석해 보겠습니다.

버블정렬의 원리는 무엇인가요?

인접한 두 셀의 값을 비교하는 동안 배열을 탐색합니다. 전자가 후자보다 크면 두 값이 교환됩니다. 이 과정이 끝나면 배열의 최대값이 마지막 위치에 배치되어야 합니다.

위 과정을 다시 수행하면 남은 데이터 중 최대값이 마지막에서 두 번째 위치에 위치하는 것을 확인할 수 있습니다.

그런 다음 위의 과정을 다시 계속하면 나머지 데이터의 최대값이 마지막에서 세 번째 위치에 배치되는 것을 계속해서 확인할 수 있습니다.

그리고 등등. . . . .

그림:

원래 배열
18 22 12
15 23 9
첫 여행 18
22 12 15 9 23
두 번째 여행 18 22 12 9 15 23
세 번째 여행 18 22 9 12 15 23
네 번째 여행 18 9 12 15 22 23
다섯 번째 여행 9 12 15 18 22 23

코드 데모:

$arr1 = array(18,22,12,15,23,9);
    $n = count($arr1);
    //控制要进行的躺数
    for($i = 0;$i < $n-1;$i++){
        //在每一趟里面,控制进行比较的次数
        for($k = 0;$k < $n-1-$i;$k++){
            if ($arr1[$k] > $arr1[$k+1]) {
                $temp = $arr1[$k];
                $arr1[$k] = $arr1[$k+1];
                $arr1[$k+1] = $temp;
            }
        }
    }

마지막으로 규칙을 요약해 보겠습니다.

1. 처음부터 끝까지 쌍을 비교하고 위치를 교환합니다. , $n은 총 개수(배열 길이)입니다.

2. 인접한 두 데이터의 크기를 매번 비교하고, 필요한 경우 위치를 교환합니다!

3. 첫 번째 여행의 비교 횟수는 $n-1

입니다.

위 내용은 버블 정렬의 상세 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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