How to implement quick sort in PHP?

藏色散人
Release: 2023-04-05 13:38:01
Original
9405 people have browsed it

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);
Copy after login

Output:

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

Related function introduction:

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

array_shift ( array &$array ) : mixed
Copy after login

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
Copy after login
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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template