> 백엔드 개발 > PHP 튜토리얼 > PHP 선택 정렬 원리 및 사용법

PHP 선택 정렬 원리 및 사용법

墨辰丷
풀어 주다: 2023-03-31 21:56:01
원래의
2442명이 탐색했습니다.

이 글은 주로 PHP 선택 정렬을 통해 배열 정렬을 구현하는 방법을 소개합니다. 선택 정렬의 원리와 구체적인 구현 단계를 예제로 분석합니다. 필요한 친구가 참고할 수 있습니다.

이 글은 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, array (9,6,2,3)
$j=3, 실행 3과 2 비율: $max[2]= 3, $arr[3]=2, $max=3, 즉 (9,6,3,2)

요약: 위 내용은 전체 내용입니다. 이 글이 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 추천:

php에서 메일 기능의 정의와 사용법

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

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

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

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