이 기사에서는 PHP 선택 정렬 방법을 사용하여 배열 정렬을 구현하는 방법을 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
선택 정렬 방법의 기본 아이디어: 사례를 사용하여 설명하겠습니다. 예를 들어 $arr = array(2,6,3,9), 큰 것에서 작은 것으로 정렬된 배열이 있습니다.
첫 번째 큰 루프: 먼저 $arr[0]이 최대값이라고 가정한 다음 각각 $arr[1]~$arr[3]과 비교하여 더 크면 교환됩니다. 그 과정은 다음과 같다 (2,6,3,9)---2와 6의 비율--->(6,2,3,9)---6과 3의 비율---> ;(6,2,3,9)---6과 9의 비율--->(9,2,3,6). 여기의 아래첨자도 변경해야 합니다.
두 번째 큰 루프: $arr[1]이 가장 크다고 가정하고($arr[0]은 제외) 각각 $arr[2]~$arr[3]과 비교합니다(9). ,2,3 ,6)----2와 3의 비율---->(9,3,2,6)---3과 6의 비율--->(9,6,2,3 ).
세 번째 큰 루프: $arr[2]가 가장 크다고 가정하고 $arr[3]과 비교합니다. 프로세스는 다음과 같습니다(9,6,2,3)---2와 3의 비율--- ->(9,6,3,2)
마찬가지로 N-1대주기 이후에는 배치가 가능합니다
PHP 코드는 다음과 같으며, 이 역시 함수로 캡슐화되어 있습니다
<?php function selectSort(&$arr){ for($i=0;$i<count($arr);$i++){ $max = $arr[$i]; for($j=$i+1;$j<count($arr);$j++){ if($max<$arr[$j]){ $max = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $max; } } } return $arr; } $myarr = array(2,6,3,9); selectSort($myarr); echo "<pre class="brush:php;toolbar:false">"; print_r($myarr); ?>
코드 분석:
첫 번째 큰 사이클:
$i=0 배열(2,6,3,9)
$j=1, 2와 6의 비율을 실행하면 $arr[0]=6, $arr[1]=2, $max=6, 즉 (6,2,3,9)
$j=2, 3과 6 비율 실행: 실행하지 않음
$j=3, 9와 6의 비율을 실행하면 $arr[0]=9, $arr[3]=6, $max=9, 즉 (9,2,3,6)
두 번째 주기:
$i=1,$max=$arr[1]=2, 배열(9,2,3,6)
$j=2, 3과 2의 비율을 실행하면 $arr[1]=3, $arr[2]=2, $max=3, 즉 (9,3,2,6) $j=3, 6과 3의 비율을 실행하면 $arr[1]=6, $arr[3]=3, $max=6, 즉 (9,6,2,3)세 번째 주기:
$i=2,$max=$arr[2]=2, 배열(9,6,2,3)
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.