>  기사  >  백엔드 개발  >  PHP 버블 정렬 예제 공유

PHP 버블 정렬 예제 공유

小云云
小云云원래의
2018-02-27 11:24:341401검색

원리: 데이터 집합의 경우 인접한 데이터의 크기를 비교하여 작은 값의 데이터를 앞에 배치하고 큰 값의 데이터를 뒤에 배치합니다. (다음은 모두 오름차순, 즉 작은 것부터 큰 것 순으로 정리했습니다)

 예: $arr = array(6, 3, 8, 2, 9, 1);

  $arr에는 6개의 데이터가 있으며, 쌍으로 비교 크기는 다음과 같습니다. 비교 라운드 수와 각 라운드의 비교 횟수에 주의하세요

첫 번째 정렬:

첫 번째 비교 6 및 3 비교 결과: 3 6 8 2 9 1

두 번째 비교 6과 3 비교 결과: 3 6 8 2 9 1

  8과 2의 세 번째 비교 결과: 3 6 2 8 9 1

  8과 9의 네 번째 비교 결과: 3 6 2 8 9 1

 9와 1 비교 비교 결과: 3 6 2 8 1 9

1차 비교 요약: 1. 1차 정렬 및 비교 5회에서 작은 것부터 큰 것까지 순서를 얻지 못했습니다 2. 각 비교는 뒤로 이동하는 큰 숫자를 기반으로 하기 때문에 비교가 완료된 후 가장 큰 숫자가 마지막에 순위가 결정될 수 있습니다. (9는 이미 버블링되었으므로 다음 비교에서 비교할 필요가 없습니다.)

두 번째 정렬:

첫 번째 비교 3과 6 비교 결과: 3 6 2 8 1 9

  6과 2의 두 번째 비교 결과: 3 2 6 8 1 9

  세 번째 비교 결과 6과 8: 3 2 6 8 1 9

  8과 1의 네 번째 비교 비교 결과: 3 2 6 1 8 9

2차 비교 요약: 1. 2차 정렬 및 4 비교 2. 8이 버블링되어 다음 라운드에서 비교할 필요가 없음 8

  세 번째 정렬:

  3과 2의 첫 번째 비교 결과: 2 3 6 1 8 9

3과 6의 두 번째 비교 결과: 2 3 6 1 8 9

세 번째 6과 1의 비교 결과: 2 3 1 6 8 9

3차 비교 요약: 1. 3차에서 3번 정렬 및 비교 결과 작은 것부터 큰 것까지 순서가 나오지 않았습니다. 2. 6이 버블링되어 다음 라운드에서 사용되지 않았습니다.

네 번째 정렬:

첫 번째 비교 2와 3 비교 결과: 2 3 1 6 8 9

두 번째 비교 3과 1 비교 결과: 2 1 3 6 8 9

4차 비교 요약: 1. 4차에서 정렬하고 2번 비교, 순서 없음 작은 것부터 큰 것까지 2. 3이 나왔고, 다음 라운드에서는 3을 비교할 필요가 없습니다

다섯 번째 정렬:

 한 번의 비교 2와 1의 비교 결과: 1 2 3 6 8 9

5차 비교 요약: 1. 5차에서 정렬하고 1번 비교했는데 작은 것부터 큰 것까지 정렬이 안 됐어요. 2. 2가 버블링됐어요. 1이 하나밖에 남지 않아서 그럴 필요가 없어요. 이제 5회에 걸친 정렬을 통해 전체 정렬이 완료되었습니다.

위의 다섯 라운드 정렬과 여러 비교를 통해 결론을 추론할 이유가 있습니다.

길이가 N인 배열의 경우 N-1 라운드를 정렬해야 하며 각 i 라운드는 N-i를 비교해야 합니다. 타임스. 이를 위해 이중 루프 문을 사용할 수 있습니다. 외부 루프는 루프 라운드를 제어하고 내부 루프는 각 라운드의 비교 횟수를 제어합니다.

<?php 

  function order($arr){
      $count = count($arr);
      $temp = 0; 
      //外层控制排序轮次
      for($i=0; $i<$count-1; $i++){
          //内层控制每轮比较次数
          for($j=0; $j< $count-1-$i; $j++){
                if($arr[$j] > $arr[$j+1]){
                    $temp        = $arr[$j];
                    $arr[$j]     = $arr[$j+1];
                    $arr[$j+1]   = $temp;
               }
          }
      } 
      return $arr;
     }     


 $arr= array(6,3,8,2,9,1);
$res =  order($arr);
var_dump($res);

관련 권장 사항:

php 버블 정렬을 구현하는 다양한 솔루션

php 버블 정렬 배열 정렬 방법을 작은 것부터 큰 것까지

php 배열 버블 정렬 알고리즘 예제 코드

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

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