Maison développement back-end tutoriel php Algorithme de tri et de recherche de tableaux en PHP

Algorithme de tri et de recherche de tableaux en PHP

Jun 23, 2023 am 09:45 AM
php算法 php数组排序 php数组搜索

PHP是一种非常流行的编程语言,它支持各种数据类型和算法,其中数组排序和搜索算法是基本而重要的部分。本文将会介绍PHP中常用的数组排序及搜索算法,以及它们的应用场景和效率分析。

一、数组排序

PHP中提供了多种数组排序的方法,包括冒泡排序、插入排序、选择排序、快速排序、归并排序等等。以下是对其中常用的几种算法的介绍及示例代码:

  1. 冒泡排序(Bubble Sort)

冒泡排序是一种简单却低效的排序算法,其基本思想是从数组的第一个元素开始,依次比较相邻元素的大小,若左边元素大于右边元素,则交换它们的位置。这样一轮比较下来,最大的元素就被移到了数组的末尾。接着再从第一个元素开始,重复上述操作,其时间复杂度为O(n^2)。

示例代码:

function bubble_sort($arr) {
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($arr[$j] > $arr[$j + 1]) {
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
            }
        }
    }
    return $arr;
}
Copier après la connexion
  1. 插入排序(Insertion Sort)

插入排序是一种相对简单的排序算法,其基本思想是将一个待排序的数据插入到已经有序的序列中,以达到排序的目的。假设前面的元素已经排序好,从数组的第二个元素开始向前寻找合适的位置进行插入操作。与冒泡排序类似,其时间复杂度也为O(n^2)。

示例代码:

function insertion_sort($arr) {
    $len = count($arr);
    for ($i = 1; $i < $len; $i++) {
        $temp = $arr[$i];
        for ($j = $i - 1; $j >= 0 && $arr[$j] > $temp; $j--) {
            $arr[$j + 1] = $arr[$j];
        }
        $arr[$j + 1] = $temp;
    }
    return $arr;
}
Copier après la connexion
  1. 快速排序(Quick Sort)

快速排序是一种常用的高效排序算法,其基本思想是选取数组中任意一个元素作为基准值,然后将剩下的元素分为两个子序列:左边的数都比基准值小,右边的数都比基准值大。接着再对左、右子序列重复以上步骤,直到子序列的长度为1或0。快速排序的时间复杂度为O(n log2 n),并且它是不稳定排序。

示例代码:

function quick_sort($arr) {
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    $pivot_key = $arr[0];
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i < $len; $i++) {
        if ($arr[$i] <= $pivot_key) {
            $left_arr[] = $arr[$i];
        } else {
            $right_arr[] = $arr[$i];
        }
    }
    $left_arr = quick_sort($left_arr);
    $right_arr = quick_sort($right_arr);
    return array_merge($left_arr, array($pivot_key), $right_arr);
}
Copier après la connexion

二、数组搜索

PHP中的数组搜索算法主要包括线性搜索、二分搜索和哈希搜索。以下是对其中常用的几种算法的介绍及示例代码:

  1. 线性搜索(Linear Search)

线性搜索是一种简单的查找算法,其基本思想是从数组的第一个元素开始,逐个比较元素的值和关键字是否相同,若存在则返回该元素的下标,否则返回-1。线性搜索的时间复杂度为O(n)。

示例代码:

function linear_search($arr, $key) {
    $len = count($arr);
    for ($i = 0; $i < $len; $i++) {
        if ($arr[$i] == $key) {
            return $i;
        }
    }
    return -1;
}
Copier après la connexion
  1. 二分搜索(Binary Search)

二分搜索也称折半查找,其基本思想是将有序数组分成两部分,每次比较中间元素和关键字的大小,若相等则返回该元素的下标,否则根据大小关系将搜索范围缩小一半,直到找出目标元素。二分搜索的时间复杂度为O(log2 n)。

示例代码:

function binary_search($arr, $key) {
    $low = 0;
    $high = count($arr) - 1;
    while ($low <= $high) {
        $mid = floor(($low + $high) / 2);
        if ($arr[$mid] == $key) {
            return $mid;
        } elseif ($arr[$mid] > $key) {
            $high = $mid - 1;
        } else {
            $low = $mid + 1;
        }
    }
    return -1;
}
Copier après la connexion
  1. 哈希搜索(Hash Search)

哈希搜索是一种利用哈希表的高效查找算法。其基本思想是将每个元素的关键字映射到哈希表中,通过一个哈希函数计算出其所在的位置,然后在该位置中查找所需元素。哈希搜索的时间复杂度为O(1),但是需要构造和维护哈希表。

以上就是PHP中常用的数组排序及搜索算法的介绍及示例代码,根据实际应用场景和数据规模选择不同的算法可以提高代码的效率。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 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 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois 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)

Quels sont les algorithmes courants dans la programmation PHP ? Quels sont les algorithmes courants dans la programmation PHP ? Jun 12, 2023 am 08:30 AM

En programmation PHP, les algorithmes font partie intégrante. La maîtrise des algorithmes courants peut non seulement améliorer l’efficacité du code, mais également faciliter la conception ultérieure des programmes. Les algorithmes suivants sont courants dans la programmation PHP : Algorithme de tri L'algorithme de tri fait référence à l'organisation d'un ensemble de données dans une séquence ordonnée selon certaines règles. Dans la programmation PHP, les algorithmes de tri couramment utilisés incluent le tri à bulles, le tri par insertion, le tri par sélection, le tri rapide, etc. Parmi eux, le tri rapide est l'algorithme de tri ayant la complexité temporelle la plus faible et convient au traitement de données à grande échelle. algorithme de recherche algorithme de recherche

Algorithme de tri et de recherche de tableaux en PHP Algorithme de tri et de recherche de tableaux en PHP Jun 23, 2023 am 09:45 AM

PHP est un langage de programmation très populaire qui prend en charge divers types de données et algorithmes, dont les algorithmes de tri de tableaux et de recherche sont des éléments fondamentaux et importants. Cet article présentera les algorithmes de tri et de recherche de tableaux couramment utilisés en PHP, ainsi que leurs scénarios d'application et leur analyse d'efficacité. 1. Tri de tableaux PHP propose une variété de méthodes de tri de tableaux, notamment le tri à bulles, le tri par insertion, le tri par sélection, le tri rapide, le tri par fusion, etc. Ce qui suit est une introduction et un exemple de code pour plusieurs algorithmes couramment utilisés : Tri à bulles (BubbleSort)

Comment trier et filtrer les données à l'aide de tableaux PHP Comment trier et filtrer les données à l'aide de tableaux PHP Jul 15, 2023 pm 12:57 PM

Comment utiliser les tableaux PHP pour le tri et le filtrage des données Introduction : Lors du développement d'applications PHP, vous devez souvent trier et filtrer les tableaux. Pour le traitement de grandes quantités de données, le tri et le filtrage sont des opérations très importantes. PHP fournit une série de fonctions et de méthodes permettant de trier et de filtrer facilement les tableaux. Cet article explique comment utiliser les tableaux PHP pour trier et filtrer les données, et fournit des exemples de code correspondants. 1. Tri des données PHP propose une variété de méthodes de tri de tableaux. Les méthodes couramment utilisées incluent sort() et rsor.

Comment représenter des connaissances et générer automatiquement des algorithmes en PHP ? Comment représenter des connaissances et générer automatiquement des algorithmes en PHP ? May 22, 2023 pm 08:10 PM

Avec la popularité d’Internet et l’expansion continue des applications, le développement de langages de programmation est devenu de plus en plus important. En tant que langage de programmation très populaire, PHP est également en constante évolution. Dans le processus de programmation avec PHP, les développeurs PHP peuvent être confrontés à la nécessité de représenter certaines connaissances et de générer automatiquement des algorithmes. Alors, comment représenter les connaissances et générer automatiquement des algorithmes en PHP ? Cet article en discutera ci-dessous. 1. Représentation des connaissances La représentation des connaissances est un enjeu très important dans le domaine de l'intelligence artificielle. Savoir

Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Sep 19, 2023 pm 01:14 PM

Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Présentation : L'algorithme de recherche binaire est un algorithme de recherche efficace qui convient à la recherche d'éléments spécifiques dans un tableau ordonné. Cet article présentera en détail le principe de l'algorithme de recherche binaire et donnera des exemples de code PHP. Principe : L'algorithme de recherche binaire localise rapidement l'élément cible en réduisant de moitié la plage de recherche à plusieurs reprises. Le processus est le suivant : d'abord, limitez la plage de recherche au début et à la fin du tableau ; puis calculez l'index de l'élément du milieu et comparez-le avec l'élément cible ;

Analyse de l'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème du sac à dos 0-1 ? Analyse de l'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème du sac à dos 0-1 ? Sep 19, 2023 pm 12:33 PM

Analyse de l'algorithme PHP : Comment utiliser un algorithme de programmation dynamique pour résoudre le problème du sac à dos 0-1 ? Introduction : La programmation dynamique est une idée algorithmique couramment utilisée pour résoudre des problèmes d'optimisation. Dans le développement de programmes, le problème du sac à dos 0-1 est un scénario classique d’application de programmation dynamique. Cet article explique comment utiliser PHP pour écrire un algorithme de programmation dynamique afin de résoudre le problème du sac à dos 0-1 et fournit des exemples de code spécifiques. Quel est le problème du sac à dos 0-1 ? Le problème du sac à dos 0-1 est un problème d’optimisation combinatoire classique. Le problème se pose comme suit : Il existe un sac à dos d’une capacité de C. Il y a n objets

Algorithmes et structures de données en PHP Algorithmes et structures de données en PHP May 25, 2023 am 08:51 AM

PHP est un langage de développement largement utilisé pour le développement d'applications Web. Cependant, les applications Web doivent souvent traiter de grandes quantités de données, y compris le traitement, le stockage et les requêtes de données, etc. Par conséquent, l’application d’algorithmes et de structures de données en PHP est une technologie très critique. Un algorithme est une méthode générale utilisée en programmation informatique pour résoudre des problèmes. En programmation, nous résolvons des problèmes en concevant et en mettant en œuvre des algorithmes pour améliorer l'efficacité, la maintenabilité et l'évolutivité de nos programmes. Les algorithmes couramment utilisés incluent le tri, la recherche, la division pour régner, la gourmandise, etc.

Compréhension approfondie des algorithmes de base de PHP et Vue dans la fonction de cartographie cérébrale Compréhension approfondie des algorithmes de base de PHP et Vue dans la fonction de cartographie cérébrale Aug 15, 2023 pm 01:00 PM

Compréhension approfondie des algorithmes de base de PHP et Vue dans la fonction de cartographie cérébrale Introduction : À l'ère moderne d'Internet, nous utilisons souvent diverses applications pour nous aider à organiser et à gérer les informations. La cartographie cérébrale est une manière courante et pratique d’organiser l’information, qui peut afficher graphiquement des processus de réflexion complexes. Dans cet article, nous nous concentrerons sur les algorithmes de base de PHP et Vue dans la fonction de cartographie cérébrale et donnerons des exemples de code. 1. Caractéristiques des cartes mentales. Les cartes mentales sont un type de carte cérébrale qui prend un thème central comme noyau et affiche les informations liées à ce thème à travers une structure arborescente.

See all articles