<?php
/**
*快速排序
**/
function quickSort(&$arr,$left,$right)
{
$start=$left;
$end=$right;
while($start<$end){
while($arr[$start]<$arr[$left] && $start!=$end){
$start++;
}
while($arr[$end]>$arr[$left] && $start!=$end){
$end--;
}
$tmp=$arr[$start];
$arr[$start]=$arr[$end];
$arr[$end]=$tmp;
}
if($arr[$start]>$arr[$left]){
$start--;
}
$tmp=$arr[$start];
$arr[$start]=$arr[$left];
$arr[$left]=$tmp;
if($start-1>$left){
quickSort($arr,$left,$start-1);
}
if($start+1<$right){
quickSort($arr,$start+1,$right);
}
}
/**
*快速排序1
**/
function quickSort1(&$arr,$left,$right)
{
$i=$left;
$j=$right;
$flag=$arr[$left];
while($i<$j)
{
while($arr[$j]>=$flag && $i<$j)
{
$j--;
}
if($i<$j)
{
$arr[$i++]=$arr[$j];
}
while($arr[$i]<$flag && $i<$j)
{
$i++;
}
if($i<$j)
{
$arr[$j--]=$arr[$i];
}
}
$arr[$i]=$flag;
if($i>$left){
quickSort1($arr,$left,$i-1);
}
if($i<$right){
quickSort1($arr,$i+1,$right);
}
}
/**
*冒泡排序
*/
function BubbleSort(&$arr)
{
$length=count($arr);
for($i=0;$i<$length;$i++){
for($j=0;$j<$length-$i-1;$j++){
if($arr[$j+1]<$arr[$j]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
}
}
}
/**
*選擇排序
*/
function SelectSort(&$arr){
$length=count($arr);
for($i=0;$i<$length;$i++){
$now=$i;
$min=$arr[$i];
for($j=$i+1;$j<$length;$j++){
if($arr[$j]<$min){
$min=$arr[$j];
$now=$j;
}
}
$tmp=$arr[$i];
$arr[$i]=$min;
$arr[$now]=$tmp;
}
}
/**
*插入排序
**/
function InsertSort(&$arr){
$length=count($arr);
for($i=1;$i<$length;$i++){
$now=$arr[$i];
if($now<$arr[$i-1]){
for($j=$i-1;$j>=0 && $arr[$j]>$now;$j--){
$arr[$j+1]=$arr[$j];
}
$arr[$j+1]=$now;
}
}
}
//測(cè)試排序結(jié)果
for($i=0;$i<20;$i++){
$arr[]=$i;
}
shuffle($arr);
print_r($arr);
//quickSort($arr,0,count($arr)-1);
InsertSort($arr);
print_r($arr);
快排、冒泡、選擇、插入排序PHP實(shí)現(xiàn)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 缺失:希爾排序、堆排序優(yōu)化:快速排序 待補(bǔ)充狀態(tài) 導(dǎo)讀?簡(jiǎn)單算法:冒泡排序O(n2)、簡(jiǎn)單選擇排序O(n2)、直接...
- 選擇排序 對(duì)于任何輸入,時(shí)間為O(n*n); 冒泡排序 最優(yōu)(對(duì)于升序的數(shù)組,因?yàn)榧尤肓艘粋€(gè)跳出判斷):O(n),...