php演算法之快速排序

2021-09-19 05:18:22 字數 766 閱讀 6748

首先我們要理解一下快速排序的原理:找到當前陣列中的任意乙個元素(一般選擇第乙個元素),作為標準,新建兩個空陣列,遍歷整個陣列元素,

如果遍歷到的元素比當前的元素要小,那麼就放到左邊的陣列,否則放到右面的陣列,然後再對新陣列進行同樣的操作,

不難發現,這裡符合遞迴的原理,所以我們可以用遞迴來實現。

使用遞迴,則需要找到遞迴點和遞迴出口:

遞迴點:如果陣列的元素大於1,就需要再進行分解,所以我們的遞迴點就是新構造的陣列元素個數大於1

遞迴出口:我們什麼時候不需要再對新陣列不進行排序了呢?就是當陣列元素個數變成1的時候,所以這就是我們的出口。

<?php

//快速排序

//待排序陣列

$arr=array(6,3,8,6,4,2,9,5,1);

//函式實現快速排序

function quick_sort($arr)

else

}//遞迴呼叫

$left=quick_sort($left);

$right=quick_sort($right);

//將所有的結果合併

return array_merge($left,array($arr[0]),$right);

}//呼叫

echo "";

print_r(quick_sort($arr));

php演算法之快速排序

快速排序法 如果要做到可以隨手寫出快速排序演算法,那首先你就必須了解快速排序的機制到底是什麼樣子的。我們就先從快排的原理入手。假如我們有乙個待排序陣列 array array 5,7,4,2,11,10,6 快排的原理是這個樣子的,首先我們清楚快排肯定要用到遞迴的方法來完成排序,那麼,每一次遞迴都做...

php 快速排序演算法,PHP 快速排序演算法

概念 快速排序演算法是對冒泡演算法的乙個優化。他的思想是先對陣列進行分割,把大的元素數值放到乙個臨時陣列裡,把小的元素數值放到另乙個臨時陣列裡 這個分割的點可以是陣列中的任意乙個元素值,一般用第乙個元素,即 array 0 然後繼續把這兩個臨時陣列重複上面拆分,最後把小的陣列元素和大的陣列元素合併起...

php 快速排序演算法,php 快速排序函式

在php程式設計中會用到一些常用的演算法,把這些演算法 寫成函式方便以後呼叫 php快速排序函式就這樣誕生了,兩個版本,遞迴和無遞迴。可以根據實際需要選用。qsort 資料快速排序遞迴版 array to sort 需要排序的陣列 排序過程中,陣列的鍵會被替換為數字索引的鍵 如果 array to ...