PHP에서 배열을 정렬하는 방법은 여러 가지가 있으며 각 배열 정렬에는 고유한 원리가 있습니다. 빠른 정렬 알고리즘, 병합 정렬 알고리즘 및 삽입 정렬 알고리즘의 예를 자세히 살펴보겠습니다.
다음 배열에 있는 숫자의 평균을 구하세요.
$arr1 = array( 1, 2, array(31, 32, 33), 4, array(51, 52, 53, array(541, 542, 543, 544) ), 6, array(71, 72, 73), ); $count = 0; //计数 $sum = GetArraySum($arr1); echo “\
원리 설명:
이러한 배열의 경우: [5, 1,2 , 6,7 ];
첫 번째 항목을 꺼내고(가운데 배열로 사용) 나머지 항목을 그것과 비교하여 두 개의 배열로 나눕니다.
왼쪽 배열 항목은 가운데 항목보다 작습니다. 오른쪽 배열 항목은 중간 항목보다 작지 않습니다.
왼쪽 배열과 오른쪽 배열이 이미 정렬된 배열인 경우 이 세 개를 병합하여 최종 결과를 얻습니다.
왼쪽 배열과 오른쪽 배열이 아직 정렬된 배열이 아닌 경우 계속해서 이 함수를 재귀적으로 사용하여 정렬된 배열을 얻습니다.
주요 다이어그램:
주요 데이터:
$arr1 = [5, 2, 1, 6,7] //원리 1
Small: [2, 1], Big 하나: [6, 7], 중간 하나: [5]
세 개 결합: [1, 2, 5, 6, 7];
$arr1 = [2, 1] //효과적으로 원리를 설명합니다. 2
가운데: [2], 왼쪽: [1], []
특정 사례:
$arr1 = [5, 2, 4, 6, 1, 3]; $arr1 = [5, 2, 4, 6, 1, 3]; //$arr1 = [5, 3, 2, 8, 7]; echo “\
원리 설명:
이러한 배열의 경우: [2, 3, 4 , 1 ];
이미 정렬된 배열에 특정 숫자 n을 삽입하려면
이 배열의 항목과 n을 뒤에서 앞으로 비교하면 됩니다. 단, 특정 항목이 n보다 크다면
움직이기만 하면 됩니다. 항목을 한 자리 뒤로 이동한 다음 계속 앞으로 가져와서 비교합니다. n보다 크면 한 자리 뒤로 이동합니다.
결국 n보다 큰 것이 없을 때에는 뒤로 이동할 때 비웠던 자리에 n을 넣어줍니다.
배열의 경우 첫 번째 항목은 "정렬된" 배열로 간주될 수 있고,
그런 다음 두 번째 항목은 위의 원칙에 따라 "삽입 정렬"될 수 있으므로 처음 두 항목은 정렬될 수 있으며,
그리고 두 개의 요소가 있는 "정렬된 배열"입니다. 이어서 비유가 이어집니다.
원리 다이어그램:
원리 데이터:
$arr1 = [2, 3, 4, 1] //원리 1
$arr1 = [2, 3, 1]; / /원리 2
$arr1 = [2, 1]; //원리 3
$arr1 = [1, 2] //원리 3
을 효과적으로 설명하는 데이터특정 사례:
$arr1 = [5, 2, 4, 6, 1, 3]; $arr1 = [2, 3, 4, 1]; $arr1 = [2, 4, 5, 6, 1, 3]; echo “\
원리 설명:
이러한 배열의 경우: $arr1 = [1, 3, 5, 2, 4, 6]; $a = [ 1 , 3, 5],
$b = [2, 4, 6];
정렬된 배열이 2개 있을 경우, 두 배열에 대해 다음과 같은 연산을 수행하여 정렬된 배열을 얻을 수 있습니다. "퓨전 배열 " 이 두 배열 중
배열 a의 첫 번째 항목 a1을 꺼낸 다음 배열 b의 첫 번째 항목 b1을 꺼내고 a1과 b1의 크기를 비교하고
더 작은 항목을 추가합니다(a1로 가정). 새 배열에 넣고 해당 배열 a의 첫 번째 항목을 삭제하고,
그런 다음 해당 배열의 첫 번째 항목(지금은 데이터가 아님)을 꺼내고 계속해서 두 항목의 크기를 비교합니다
매번 작은 것을 새 배열에 넣고 다음 "삭제, 가져오기, 비교"를 계속합니다. . . .
최종 결과는 새 배열에서 새로 정렬된 배열을 얻을 수 있다는 것입니다.
아직 정렬되지 않은 배열의 경우 재귀적 방법이 계속 "2개로 분할"되는 한 결국 가장 짧은 배열(1개 또는 0개 셀만)을 얻게 됩니다. 이러한 종류의 배열은 자연스럽게 정렬됩니다.
원리 다이어그램:
원리 데이터:
$arr1 = [1, 3, 5, 4, 6, 7, 8 ] //원리를 강력하게 보여주는 데이터 1
가운데부터 2 : [ ]; [ 6, 7, 8]
[ 1, 3, 4, 5, ]
$arr1 = [1, 3, 2, 4] // 원리를 강력하게 보여주는 데이터 2
사례 :
$arr1 = [5, 2, 4, 6, 1, 3]; echo “\
관련 추천 :
위 내용은 PHP에서 배열 정렬을 구현하는 방법: 빠른 정렬, 삽입 정렬, 병합 정렬 알고리즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!