Résolvez des tableaux PHP en une minute : comment utiliser le tri rapide ?

慕斯
Libérer: 2023-03-10 21:22:02
original
2062 Les gens l'ont consulté

PHP中我们了解了那么多关于数组的知识,不知道你们对快速排序有多少了解,我相信很大一部分人会不知道这部分知识点,那么不急本篇文章就是带领大家更深刻的去了解这个内容。

快速排序:

快遠排序(Quicksort)是对冒泡排序的一种改进。通过一-趟排序将要排序的数据分割成独立的两部分,其中-一部分的所有数据都批另外-部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序列。

设要排序的数组是.....N-1]首先任意选取一一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的數都放到它前面,所有比它大的数都放到它后面,这个过程称为- -趟快速排序。值得注意的是,快速排序不是一-种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。

我们以代码为例:

<?php
//PHP数组排序:快速排序
$arr = array(1,6,3,4,9,2,7,8);
//快速排序
function quick_sort($arr){
//递归出口
$len = count($arr);
if($len <= 1) return $arr;
//取出某个元素,然后将剩余的数组元素,分散到两个不同的数组中
$left = $right = array();
for($i = 1;$i < $len;$i++){
//第一个元素作为比较元素
//比较:小的放left中,大的放right中
if($arr[$i] < $arr[0]){
  $left[] = $arr[$i];
  }else{
    $right[] = $arr[$i];
}
}
if($arr[$i] < $arr[0]){
  $left[] = $arr[$i];
  }else{
  $right[] = $arr[$i];
  }
  }
  //合并三个“数”组.
  return array_merge($left,(array)$arr[0],$right);
}
  echo &#39;<pre class="brush:php;toolbar:false">&#39;;
  print_r(quick_sort($arr));
Copier après la connexion

运行结果如下:

Résolvez des tableaux PHP en une minute : comment utiliser le tri rapide ?

//$left和$right数组元素没有排好序:递归点

$1eft = quick_ sort($1eft);
$right = quick_ sort($right); .
Copier après la connexion

快速排序的算法是:

1)从数组中选出一 -个元素(通常第一一个), 作为参照对象。。

2)定义两个数组,将目标数组中剩余的元素与参照元素挨个比较:小的放到-一个数组,大的放到另外-一个数组。

3)第二步执行完之后,前后的数组顺序不确定,但是确定了自己的位置。

4)将得到的小数组按照第 1到第3部重复操作(子问题)。

5)回溯最小数组 (一个元素)。

相关学习视频分享: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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!