Home  >  Article  >  Backend Development  >  How to implement quick sort in PHP?

How to implement quick sort in PHP?

藏色散人
藏色散人Original
2019-03-04 10:19:539399browse

Quick sort is a comparison sort, which means it can sort elements of any type. Quick sort can be said to be an improvement of bubble sort.

How to implement quick sort in PHP?

The schematic diagram of the quick sort implementation idea is as follows:

How to implement quick sort in PHP?

Note: The horizontal line is the pivot value

The quick sort algorithm code is as follows:

<?php
function quick_sort($my_array)
{
    $loe = $gt = array();
    if(count($my_array) < 2)
    {
        return $my_array;
    }
    $pivot_key = key($my_array);
    $pivot = array_shift($my_array);
    foreach($my_array as $val)
    {
        if($val <= $pivot)
        {
            $loe[] = $val;
        }elseif ($val > $pivot)
        {
            $gt[] = $val;
        }
    }
    return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}

$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo &#39;原始数组 : &#39;.implode(&#39;,&#39;,$my_array).&#39;\n&#39;;
$my_array = quick_sort($my_array);
echo &#39;排序后数组 : &#39;.implode(&#39;,&#39;,$my_array);

Output:

原始数组:3,0,2,5,-1,4,1                             
排序后数组:-1,0,1,2,3,4,5

Related function introduction:

##array_shift( ) function moves the unit at the beginning of the array out of the array;

array_shift ( array &$array ) : mixed

array_shift() moves the first unit of array out and returns it as the result, decrements the length of array by one and moves all other units forward by one. All numeric key names will be changed to count from zero, and text key names will remain unchanged.

array_merge() function merges one or more arrays;

array_merge ( array $array1 [, array $... ] ) : array

array_merge() merges the cells of one or more arrays, and the values ​​in one array are appended to the previous array . Returns the resulting array.

This article is an introduction to the PHP quick sort algorithm. I hope it will be helpful to friends in need!


The above is the detailed content of How to implement quick sort in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn