Table des matières
php实现四种基本排序算法
Maison développement back-end tutoriel php php实现四种基本排序算法_PHP教程

php实现四种基本排序算法_PHP教程

Jul 13, 2016 am 09:56 AM
算法

php实现四种基本排序算法

排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39);

 

用四种排序算法进行排序

 

冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升)

 

    $arr=array(1,43,54,62,21,66,32,78,36,76,39);   
    function bubbleSort($arr)  
    {   
    $len=count($arr);  
    //该层循环控制 需要冒泡的轮数  
    for($i=1;$i<$len;$i++)  
    { //该层循环用来控制每轮 冒出一个数 需要比较的次数  
    for($k=0;$k<$len-$i;$k++)  
    {  
    if($arr[$k]>$arr[$k+1])  
    {  
    $tmp=$arr[$k+1];  
    $arr[$k+1]=$arr[$k];  
    $arr[$k]=$tmp;  
    }  
    }  
    }  
    return $arr;  
    }  
Copier après la connexion

选择排序:(在一组数中找出最小的那个数与第一个数交换位置,在剩下的数种再找出最小的与第二个位置的数交换,

一次继续,直到倒数第二个数与最后一个数比较位置)

    function selectSort($arr) {  
    //双重循环完成,外层控制轮数,内层控制比较次数  
    $len=count($arr);  
    for($i=0; $i<$len-1; $i++) {  
    //先假设最小的值的位置  
    $p = $i;  
      
    for($j=$i+1; $j<$len; $j++) {  
    //$arr[$p] 是当前已知的最小值  
    if($arr[$p] > $arr[$j]) {  
    //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。  
    $p = $j;  
    }  
    }  
    //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。  
    if($p != $i) {  
    $tmp = $arr[$p];  
    $arr[$p] = $arr[$i];  
    $arr[$i] = $tmp;  
    }  
    }  
    //返回最终结果  
    return $arr;  
    }  
Copier après la connexion

插入排序:(假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。

如此反复循环,直到全部排好顺序)

    function insertSort($arr) {  
    $len=count($arr);   
    for($i=1, $i<$len; $i++) {  
    $tmp = $arr[$i];  
    //内层循环控制,比较并插入  
    for($j=$i-1;$j>=0;$j--) {  
    if($tmp < $arr[$j]) {  
    //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换  
    $arr[$j+1] = $arr[$j];  
    $arr[$j] = $tmp;  
    } else {  
    //如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。  
    break;  
    }  
    }  
    }  
    return $arr;  
    }  
Copier après la connexion

快速排序:(选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,

一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地

排序划分的两部分。 )

function quickSort($arr) {  
//先判断是否需要继续进行  
$length = count($arr);  
if($length <= 1) {  
return $arr;  
}  
//选择第一个元素作为基准  
$base_num = $arr[0];  
//遍历除了标尺外的所有元素,按照大小关系放入两个数组内  
//初始化两个数组  
$left_array = array(); //小于基准的  
$right_array = array(); //大于基准的  
for($i=1; $i<$length; $i++) {  
if($base_num > $arr[$i]) {  
//放入左边数组  
$left_array[] = $arr[$i];  
} else {  
//放入右边  
$right_array[] = $arr[$i];  
}  
}  
//再分别对左边和右边的数组进行相同的排序处理方式递归调用这个函数  
$left_array = quick_sort($left_array);  
$right_array = quick_sort($right_array);  
//合并  
return array_merge($left_array, array($base_num), $right_array);  
}  
Copier après la connexion


 

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/987358.htmlTechArticlephp实现四种基本排序算法 排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39); 用四种排序算法进行排序 冒泡排序:(思路:对未排好序的数,从前往...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne Mar 26, 2024 pm 12:41 PM

Écrit ci-dessus et compréhension personnelle de l'auteur : À l'heure actuelle, dans l'ensemble du système de conduite autonome, le module de perception joue un rôle essentiel. Le véhicule autonome roulant sur la route ne peut obtenir des résultats de perception précis que via le module de perception en aval. dans le système de conduite autonome, prend des jugements et des décisions comportementales opportuns et corrects. Actuellement, les voitures dotées de fonctions de conduite autonome sont généralement équipées d'une variété de capteurs d'informations de données, notamment des capteurs de caméra à vision panoramique, des capteurs lidar et des capteurs radar à ondes millimétriques pour collecter des informations selon différentes modalités afin d'accomplir des tâches de perception précises. L'algorithme de perception BEV basé sur la vision pure est privilégié par l'industrie en raison de son faible coût matériel et de sa facilité de déploiement, et ses résultats peuvent être facilement appliqués à diverses tâches en aval.

Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Jun 03, 2024 pm 01:25 PM

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

Explorez les principes sous-jacents et la sélection d'algorithmes de la fonction de tri C++ Explorez les principes sous-jacents et la sélection d'algorithmes de la fonction de tri C++ Apr 02, 2024 pm 05:36 PM

La couche inférieure de la fonction de tri C++ utilise le tri par fusion, sa complexité est O(nlogn) et propose différents choix d'algorithmes de tri, notamment le tri rapide, le tri par tas et le tri stable.

L'intelligence artificielle peut-elle prédire la criminalité ? Explorez les capacités de CrimeGPT L'intelligence artificielle peut-elle prédire la criminalité ? Explorez les capacités de CrimeGPT Mar 22, 2024 pm 10:10 PM

La convergence de l’intelligence artificielle (IA) et des forces de l’ordre ouvre de nouvelles possibilités en matière de prévention et de détection de la criminalité. Les capacités prédictives de l’intelligence artificielle sont largement utilisées dans des systèmes tels que CrimeGPT (Crime Prediction Technology) pour prédire les activités criminelles. Cet article explore le potentiel de l’intelligence artificielle dans la prédiction de la criminalité, ses applications actuelles, les défis auxquels elle est confrontée et les éventuelles implications éthiques de cette technologie. Intelligence artificielle et prédiction de la criminalité : les bases CrimeGPT utilise des algorithmes d'apprentissage automatique pour analyser de grands ensembles de données, identifiant des modèles qui peuvent prédire où et quand les crimes sont susceptibles de se produire. Ces ensembles de données comprennent des statistiques historiques sur la criminalité, des informations démographiques, des indicateurs économiques, des tendances météorologiques, etc. En identifiant les tendances qui pourraient échapper aux analystes humains, l'intelligence artificielle peut donner du pouvoir aux forces de l'ordre.

Algorithme de détection amélioré : pour la détection de cibles dans des images de télédétection optique haute résolution Algorithme de détection amélioré : pour la détection de cibles dans des images de télédétection optique haute résolution Jun 06, 2024 pm 12:33 PM

01Aperçu des perspectives Actuellement, il est difficile d'atteindre un équilibre approprié entre efficacité de détection et résultats de détection. Nous avons développé un algorithme YOLOv5 amélioré pour la détection de cibles dans des images de télédétection optique haute résolution, en utilisant des pyramides de caractéristiques multicouches, des stratégies de têtes de détection multiples et des modules d'attention hybrides pour améliorer l'effet du réseau de détection de cibles dans les images de télédétection optique. Selon l'ensemble de données SIMD, le mAP du nouvel algorithme est 2,2 % meilleur que YOLOv5 et 8,48 % meilleur que YOLOX, permettant ainsi d'obtenir un meilleur équilibre entre les résultats de détection et la vitesse. 02 Contexte et motivation Avec le développement rapide de la technologie de télédétection, les images de télédétection optique à haute résolution ont été utilisées pour décrire de nombreux objets à la surface de la Terre, notamment des avions, des voitures, des bâtiments, etc. Détection d'objets dans l'interprétation d'images de télédétection

Pratique et réflexion sur la plateforme multimodale de grands modèles Jiuzhang Yunji DataCanvas Pratique et réflexion sur la plateforme multimodale de grands modèles Jiuzhang Yunji DataCanvas Oct 20, 2023 am 08:45 AM

1. Le développement historique des grands modèles multimodaux. La photo ci-dessus est le premier atelier sur l'intelligence artificielle organisé au Dartmouth College aux États-Unis en 1956. Cette conférence est également considérée comme le coup d'envoi du développement de l'intelligence artificielle. pionniers de la logique symbolique (à l'exception du neurobiologiste Peter Milner au milieu du premier rang). Cependant, cette théorie de la logique symbolique n’a pas pu être réalisée avant longtemps et a même marqué le début du premier hiver de l’IA dans les années 1980 et 1990. Il a fallu attendre la récente mise en œuvre de grands modèles de langage pour découvrir que les réseaux de neurones portent réellement cette pensée logique. Les travaux du neurobiologiste Peter Milner ont inspiré le développement ultérieur des réseaux de neurones artificiels, et c'est pour cette raison qu'il a été invité à y participer. dans ce projet.

Application d'algorithmes dans la construction de 58 plateformes de portraits Application d'algorithmes dans la construction de 58 plateformes de portraits May 09, 2024 am 09:01 AM

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Ajoutez SOTA en temps réel et montez en flèche ! FastOcc : un algorithme Occ plus rapide et convivial pour le déploiement est là ! Ajoutez SOTA en temps réel et montez en flèche ! FastOcc : un algorithme Occ plus rapide et convivial pour le déploiement est là ! Mar 14, 2024 pm 11:50 PM

Écrit ci-dessus & La compréhension personnelle de l'auteur est que dans le système de conduite autonome, la tâche de perception est un élément crucial de l'ensemble du système de conduite autonome. L'objectif principal de la tâche de perception est de permettre aux véhicules autonomes de comprendre et de percevoir les éléments environnementaux environnants, tels que les véhicules circulant sur la route, les piétons au bord de la route, les obstacles rencontrés lors de la conduite, les panneaux de signalisation sur la route, etc., aidant ainsi en aval modules Prendre des décisions et des actions correctes et raisonnables. Un véhicule doté de capacités de conduite autonome est généralement équipé de différents types de capteurs de collecte d'informations, tels que des capteurs de caméra à vision panoramique, des capteurs lidar, des capteurs radar à ondes millimétriques, etc., pour garantir que le véhicule autonome peut percevoir et comprendre avec précision l'environnement environnant. éléments , permettant aux véhicules autonomes de prendre les bonnes décisions pendant la conduite autonome. Tête

See all articles