堆排序(php实现)
堆排序基本步骤: 1:把无序序列构成一个堆。 2:交换堆顶元素和最后一个元素,交换之后由于堆结构破坏,重置堆。 初始化堆和交换后的重置堆区别在于:初始化堆时从最后一个非叶子结点开始调整结点位子,交换堆顶元素后的重置只需要调节堆顶元素的位子。 ?ph
堆排序基本步骤:
1:把无序序列构成一个堆。
2:交换堆顶元素和最后一个元素,交换之后由于堆结构破坏,重置堆。
初始化堆和交换后的重置堆区别在于:初始化堆时从最后一个非叶子结点开始调整结点位子,交换堆顶元素后的重置只需要调节堆顶元素的位子。
<?php /** * 堆排序 */ function heapSort($arr){ $len = count($arr); initHeap($arr);//初始化堆 for($end=$len-1;$end>0;$end--){//交换堆顶和最后的一个元素 $tmp = $arr[$end]; $arr[$end] = $arr[0]; $arr[0] = $tmp; //调整堆,堆顶元素破坏了堆结构 adjustHeap($arr,0,$end-1);//$end-1 } return $arr; } function initHeap(&$arr){ $len = count($arr); //最后一个非叶子节点开始,到根节点 for($start=floor($len/2)-1;$start>=0;$start--){ adjustHeap($arr,$start,$len-1); } } /* * $arr 待调整数组 * $start 待调整节点的下标(区别于在二叉树中编号,-1) * $end 结束下标 */ function adjustHeap(&$arr,$start,$end){ $max = $start; $lchild_index = 2*($start+1)-1; $rchild_index = 2*($start+1); if($lchild_index$arr[$max]){ $max = $lchild_index; } if($rchild_index$arr[$max]){ $max = $rchild_index; } } if($max !=$start){ $tmp = $arr[$start]; $arr[$start] = $arr[$max]; $arr[$max] = $tmp; adjustHeap($arr, $max, $end); } } $arr = array(2,4,5,2,4,6,3,1,2,7,8); echo count($arr); print_r(heapSort($arr)); ?>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
