이 기사의 예에서는 PHP 삽입 정렬 방법을 사용하여 배열 정렬을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
삽입 정렬 방법의 기본 아이디어: 설명을 위해 사례도 사용하고 $arr = array(2,6,3,9)를 사용하여 큰 것부터 작은 것까지 정렬합니다.
구현 원칙: (실제로 생성하지 않고) 순서가 지정된 배열 $arr = array(2)가 있다고 가정하고 $arr[1]=6을 사용하여 이를 비교하고, 6>2인 경우 $arr[ 0]을 사용합니다. 그런 다음 $arr[1] 위치로 이동하고 6이 $arr[0] 위치에 삽입됩니다. 그런 다음 $arr[2]=3을 $arr[1]=2, 3>2와 비교한 다음 $arr[1]=2는 원래 $arr[인 $arr[2]의 위치로 계속 이동합니다. 3]=3 $arr[1] 위치에 삽입한 후 계속해서 닫는 위치에 9를 삽입합니다. 최종 결과는 (9,6,3,2)입니다. 정렬은 count($arr)-1 큰 루프 후에도 수행될 수 있습니다.
코드 패턴 분석:
첫 번째 큰 루프: $[1] 및 $[0] 비율
두 번째 큰 주기: $[2] 대 $[1], $[1] 대 $[0]
세 번째 큰 주기: $[3] 대 $[2], $[2] 대 $[1], $[1] 대 $[0]
PHP 코드는 사용 편의성을 위해 함수 캡슐화를 사용합니다
<?php function insertSort(&$arr){ for($i=1;$i<count($arr);$i++){ //$insertVal是准备插入的数 for($j=$i;$j>0;$j--){ if($arr[$j]>$arr[$j-1]){ $insertVal = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $insertVal; } } } } $myarr = array(2,6,3,9); insertSort($myarr); echo "<pre class="brush:php;toolbar:false">"; print_r($myarr); ?>
코드 구현 분석:
첫 번째 큰 사이클:
$i=1 배열(2,6,3,9)
$j=1 6과 2의 비율을 실행합니다: $arr[1]=2;$arr[0]=6, get (6,2,3,9)
두 번째 주기:
$i=2 배열(6,2,3,9)
$j=2는 3과 2의 비율을 수행합니다. $arr[2]=2, $arr[1]=3이 되고 (6,3,2,9)를 얻습니다.
$j--,$j=1 $arr[1] 및 $arr[0] 비율 실행: 조건이 참이 아닙니다
세 번째 주기:
$i=3 배열(6,3,2,9)
$j=3은 9와 2의 비율을 수행합니다. $arr[3]=2, $arr[2]=9가 되어 (6,3,9,2)를 얻습니다.
$j--,$j=2 9와 3의 비율을 실행하면 $arr[2]=3, $arr[1]=9가 되고 (6,9,3,2)를 얻습니다.
$j--,$j=1 9와 6의 비율을 수행합니다. $arr[1]=5, $arr[0]=9가 되고 (9,6,3,2)를 얻습니다
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.