PHP는 양방향 병합 정렬을 구현합니다.
<span> 1</span><span>$arr</span> = [9, 43, 12, 0, 87, 1<span>]; </span><span> 2</span><span>function</span> merge_sort(&<span>$arr</span><span>){ </span><span> 3</span> _merge_sort(<span>$arr</span>, <span>$arr</span>, 0, <span>count</span>(<span>$arr</span>) - 1<span>); </span><span> 4</span><span>} </span><span> 5</span><span> 6</span><span>function</span> _merge_sort(&<span>$s_arr</span>, &<span>$d_arr</span>, <span>$i</span>, <span>$j</span><span>){ </span><span> 7</span><span>if</span>(<span>$i</span> > <span>$j</span><span>){ </span><span> 8</span><span>return</span><span>; </span><span> 9</span><span> } </span><span>10</span><span>if</span>(<span>$i</span> == <span>$j</span><span>){ </span><span>11</span><span>echo</span> 'aa'<span>; </span><span>12</span><span>$d_arr</span>[<span>$i</span>] = <span>$s_arr</span>[<span>$i</span><span>]; </span><span>13</span><span>return</span><span>false</span><span>; </span><span>14</span><span> } </span><span>15</span><span>$tmp_arr</span> = <span>array</span><span>(); </span><span>16</span><span>$m</span> = <span>intval</span>((<span>$i</span> + <span>$j</span>)/2<span>); </span><span>17</span><span>echo</span><span>$m</span><span>; </span><span>18</span><span>if</span>(<span>$i</span> <= <span>$m</span><span>){ </span><span>19</span> _merge_sort(<span>$s_arr</span>, <span>$tmp_arr</span>, <span>$i</span>, <span>$m</span><span>); </span><span>20</span><span> } </span><span>21</span><span>if</span>(<span>$m</span>+1 <= <span>$j</span><span> ){ </span><span>22</span> _merge_sort(<span>$s_arr</span>, <span>$tmp_arr</span>, <span>$m</span>+1, <span>$j</span><span>); </span><span>23</span><span> } </span><span>24</span> merge(<span>$tmp_arr</span>, <span>$d_arr</span>, <span>$i</span>, <span>$m</span>, <span>$j</span><span>); </span><span>25</span><span>} </span><span>26</span> //$s_arr中的$start到$m与$m到$end两个序列都是有序的,将这两个序列合并到$d_arr里面 <span>27</span><span>function</span> merge(&<span>$s_arr</span>, &<span>$d_arr</span>, <span>$start</span>, <span>$m</span>, <span>$end</span><span>){ </span><span>28</span><span>$i</span> = <span>$start</span>; <span>$j</span> = <span>$m</span>+1;<span>$d_i</span> = <span>$i</span><span>; </span><span>29</span><span>while</span>(<span>$i</span> <= <span>$m</span> && <span>$j</span> <= <span>$end</span><span>){ </span><span>30</span><span>if</span>(<span>$s_arr</span>[<span>$i</span>] > <span>$s_arr</span>[<span>$j</span><span>]){ </span><span>31</span><span>$d_arr</span>[<span>$d_i</span>++] = <span>$s_arr</span>[<span>$i</span>++<span>]; </span><span>32</span><span>//</span><span>$i++;</span><span>33</span> }<span>else</span><span>{ </span><span>34</span><span>$d_arr</span>[<span>$d_i</span>++] = <span>$s_arr</span>[<span>$j</span>++<span>]; </span><span>35</span><span> } </span><span>36</span><span> } </span><span>37</span><span>while</span>(<span>$i</span> <= <span>$m</span><span>){ </span><span>38</span><span>$d_arr</span>[<span>$d_i</span>++] = <span>$s_arr</span>[<span>$i</span>++<span>]; </span><span>39</span><span>//</span><span>$i++;</span><span>40</span><span> } </span><span>41</span><span>while</span> (<span>$j</span> <= <span>$end</span><span>) { </span><span>42</span><span>$d_arr</span>[<span>$d_i</span>++] = <span>$s_arr</span>[<span>$j</span>++<span>]; </span><span>43</span><span> } </span><span>44</span> }
위 내용은 관련 측면을 포함하여 PHP의 양방향 병합 정렬 구현을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C++정렬 함수의 맨 아래 계층은 병합 정렬을 사용하고 복잡도는 O(nlogn)이며 빠른 정렬, 힙 정렬 및 안정 정렬을 포함한 다양한 정렬 알고리즘 선택을 제공합니다.

Uniapp은 크로스 플랫폼 개발 프레임워크로, 강력한 크로스 엔드 기능을 통해 개발자는 다양한 애플리케이션을 빠르고 쉽게 개발할 수 있습니다. Uniapp에서는 드래그 앤 드롭 정렬과 드래그 앤 드롭 동작을 구현하는 것도 매우 간단하며, 다양한 컴포넌트와 요소의 드래그 앤 드롭 동작을 지원할 수 있습니다. 이 기사에서는 Uniapp을 사용하여 드래그 앤 드롭 정렬 및 드래그 앤 드롭 작업을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 드래그 앤 드롭 정렬 기능은 많은 응용 프로그램에서 매우 일반적입니다. 예를 들어 목록 드래그 앤 드롭 정렬, 아이콘 드래그 앤 드롭 정렬 등을 구현하는 데 사용할 수 있습니다. 아래에 우리가 나열

docker 시작 실패에 대한 해결 방법: 1. 실행 상태를 확인한 후 "echo 3 > /proc/sys/vm/drop_caches" 명령을 통해 점유된 메모리를 해제합니다. 2. "$netstat -nltp|grep .. . " 명령을 사용하여 해당 포트가 이미 점유되어 있는지 확인합니다. 온라인 접속 후 점유된 것으로 확인되면 사용 가능한 포트로 변경한 후 다시 시작하세요.

제목: Array.Sort 함수를 사용하여 C#에서 배열을 정렬하는 예 텍스트: C#에서는 배열이 일반적으로 사용되는 데이터 구조이므로 배열 정렬 작업이 필요한 경우가 많습니다. C#에서는 배열을 편리하게 정렬할 수 있는 Sort 메서드가 있는 Array 클래스를 제공합니다. 이 문서에서는 C#에서 Array.Sort 함수를 사용하여 배열을 정렬하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 먼저 Array.Sort 함수의 기본 사용법을 이해해야 합니다. 배열.그래서

AMP 코인이란 무엇입니까? AMP 토큰은 Synereo 플랫폼의 주요 거래 통화로 2015년 Synereo 팀에 의해 만들어졌습니다. AMP 토큰은 다양한 기능과 용도를 통해 사용자에게 더 나은 디지털 경제 경험을 제공하는 것을 목표로 합니다. AMP 토큰의 목적 AMP 토큰은 Synereo 플랫폼에서 다양한 역할과 기능을 가지고 있습니다. 첫째, 플랫폼의 암호화폐 보상 시스템의 일부로서 사용자는 콘텐츠를 공유하고 홍보함으로써 AMP 보상을 얻을 수 있으며, 이는 사용자가 플랫폼 활동에 보다 적극적으로 참여하도록 장려하는 메커니즘입니다. AMP 토큰은 Synereo 플랫폼에서 콘텐츠를 홍보하고 배포하는 데에도 사용할 수 있습니다. 사용자는 AMP 토큰을 사용하여 더 많은 시청자가 보고 공유하도록 유도함으로써 플랫폼에서 콘텐츠의 가시성을 높일 수 있습니다.

PHP로 프로그래밍할 때 배열을 병합해야 하는 경우가 종종 있습니다. PHP는 배열 병합을 완료하기 위해 array_merge() 함수를 제공하지만, 배열에 동일한 키가 존재할 경우 이 함수는 원래 값을 덮어씁니다. 이 문제를 해결하기 위해 PHP는 배열을 병합하고 동일한 키의 값을 유지할 수 있는 array_merge_recursive() 함수도 언어에 제공하여 프로그램 설계를 더욱 유연하게 만듭니다. array_merge

노드 시작 오류 해결 방법: 1. 터미널에서 직접 "node xx.js"를 실행합니다. 2. 시작 시작 항목 "scripts"를 추가합니다. ,"start":"node service.js"}"; 3. "npm start"를 다시 실행합니다.

예 이 예에서는 계속하기 전에 먼저 list.sort()의 사용법을 살펴보겠습니다. 여기서는 목록을 생성하고 sort() 메서드를 사용하여 오름차순으로 정렬했습니다. - #CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)# SorttheListsinAscendingOrdermyList .sort(
