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[2]위치 로 옮 기 고 원$arr[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>";
print_r($myarr);
?>
코드 구현 분석:첫 번 째 대순환:
$i=1 배열(2,6,3,9)
$j=1 실행 6 과 2 비:$arr[1]=2;$arr[0]=6,획득(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)
본 논문 에서 말 한 것 이 여러분 의 phop 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.