PHP에서 삽입 정렬 방법의 원리와 응용

墨辰丷
풀어 주다: 2023-03-31 22:00:02
원래의
1708명이 탐색했습니다.

이 글에서는 배열 정렬을 구현하기 위한 PHP 삽입 정렬 방법을 주로 소개합니다. 삽입 정렬 방법의 원리와 구체적인 구현 기술을 예제와 함께 분석합니다. 필요한 친구가 참고할 수 있습니다.

이 글에서는 예제가 포함된 PHP 삽입 정렬 방법 배열 정렬을 구현하는 방법.

구체적인 분석은 다음과 같습니다.

삽입 정렬 방법의 기본 아이디어: 여전히 $arr = array(2,6,3,9)를 사용하여 큰 것부터 정렬하는 경우로 설명됩니다. 작게.

구현 원칙: 순서가 지정된 배열 $arr = array(2)가 있다고 가정하고(실제로 생성되지 않음) $arr[1]=6을 사용하여 비교하고, 6>2인 경우 $arr[0 ]을 넣습니다. $arr[1] 위치로 이동하고 $arr[0] 위치에 6이 삽입됩니다. 그런 다음 $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] 비율; ratio
세 번째 큰 루프: $[3] 및 $[2] ratio, $[2] 및 $[1] ratio, $[1] 및 $[0] ratio

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, get (6,3,2,9)
$j--,$j=1 arr[1] 및 $arr의 $ 비율 실행 [0]: 조건이 성립되지 않음

세 번째 큰 루프:

$i=3 Array (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, get (6,9,3,2)
$j--,$j=1 9와 6의 비율을 실행하면 $arr[1]=5가 됩니다. ,$arr[ 0]=9, get (9,6,3,2)

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

관련 권장사항:

PHP 작업 양식을 통해 이메일을 보내는 방법

php는 확인 양식을 사용하여 필드가 비어 있는지 감지합니다.

php에서 각 단락에 공백을 추가하는 방법

위 내용은 PHP에서 삽입 정렬 방법의 원리와 응용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!