php 정렬 법 삽입 배열 정렬 인 스 턴 스

1682 단어 php배열정렬
본 고의 실례 는 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기