>백엔드 개발 >PHP 튜토리얼 >PHP에서 삽입 정렬 알고리즘의 구현 단계

PHP에서 삽입 정렬 알고리즘의 구현 단계

王林
王林원래의
2023-07-07 13:40:451435검색

PHP의 삽입 정렬 알고리즘 구현 단계

삽입 정렬은 정렬된 시퀀스를 구성하고 정렬되지 않은 데이터를 정렬된 시퀀스에 하나씩 삽입하여 정렬된 시퀀스를 얻습니다. PHP에서는 다음 단계를 통해 삽입 정렬 알고리즘을 구현할 수 있습니다.

1단계: 정렬할 배열을 매개변수로 받는 insertSort 함수를 정의합니다.

function insertionSort($arr) {
  $n = count($arr);
  for ($i = 1; $i < $n; $i++) {
    $key = $arr[$i];
    $j = $i - 1;

    while ($j >= 0 && $arr[$j] > $key) {
      $arr[$j + 1] = $arr[$j];
      $j = $j - 1;
    }
    $arr[$j + 1] = $key;
  }

  return $arr;
}

2단계: 메인 프로그램에서 insertSort 함수를 호출하고 정렬할 배열을 전달합니다.

$unsortedArray = [5, 2, 1, 7, 3];
$sortedArray = insertionSort($unsortedArray);

3단계: for 루프를 정의하여 정렬된 배열을 출력합니다.

$n = count($sortedArray);
for ($i = 0; $i < $n; $i++) {
  echo $sortedArray[$i] . " ";
}

전체 코드는 다음과 같습니다.

위 코드는 삽입 정렬 알고리즘을 구현합니다. 정렬할 배열을 정렬과 비정렬의 두 부분으로 나누고, 정렬되지 않은 요소를 정렬된 부분에 하나씩 삽입하여 정렬된 결과를 얻는 것이 이 알고리즘의 핵심 아이디어입니다. 코드에서는 for 루프를 사용하여 정렬할 배열을 순회하고 현재 요소를 적절한 위치에 삽입합니다. 내부 while 루프는 적절한 위치를 찾을 때까지 정렬된 섹션의 요소를 지속적으로 비교하고 이동하는 데 사용됩니다.

삽입 정렬 알고리즘의 시간 복잡도는 O(n^2)입니다. 여기서 n은 정렬할 배열의 길이를 나타냅니다. 알고리즘은 인접한 요소의 비교 및 ​​이동 연산만 포함하므로 공간 복잡도는 O(1)이며 내부 정렬 알고리즘입니다.

요약: 위의 단계를 통해 PHP에서 삽입 정렬 알고리즘을 성공적으로 구현했습니다. 알고리즘은 간단하고 효과적이며 소규모 데이터를 정렬하는 데 적합합니다. 실제 응용 프로그램에서 정렬할 배열이 더 크거나 더 높은 성능이 필요한 경우 다른 더 빠른 정렬 알고리즘을 고려할 수 있습니다.

위 내용은 PHP에서 삽입 정렬 알고리즘의 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.