日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php快速排序法远离,php快速排序原理与实现方法分析

發布時間:2025/5/22 php 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php快速排序法远离,php快速排序原理与实现方法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了php快速排序方法。分享給大家供大家參考,具體如下:

$n = array('13','14','55','10','54','2','79','106','89','90','22','60','111','77777','-110','-10','123');

function partition($n,$left,$right)

{

global $n;

$pivot = $n[$left];

$lo=$left;

$hi=$right+1;

while($lo+1!=$hi) {

if($n[$lo+1]

$lo++;

else if($n[$hi-1]>$pivot)

$hi--;

else{

$t=$n[$lo+1];

$n[$lo+1]=$n[$hi-1];

$n[$hi-1]=$t;

$lo++;

$hi--;

}

}

$n[$left]=$n[$lo];

$n[$lo]=$pivot;

return $lo;

}

function quicksort($n,$left,$right)

{

global $n;

$dp = 0;

if ($left

$dp=partition($n,$left,$right);

quicksort($n,$left,$dp-1);

quicksort($n,$dp+1,$right);

}

}

quicksort($n,0,sizeof($n)-1);

print_r($n);

?>

快速排序是對冒泡排序的一種改進。它的基本思想是:通過一躺排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一不部分的所有數據都要小,然后再按次方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

假設要排序的數組是A[1]……A[N],首先任意選取一個數據(通常選用第一個數據)作為關鍵數據,然后將所有比它小的數都放到它前面,所有比它大的數都放到它后面,這個過程稱為一躺快速排序。一躺快速排序的算法是:

1)、設置兩個變量I、J,排序開始的時候I:=1,J:=N;

2)、以第一個數組元素作為關鍵數據,賦值給X,即X:=A[1];

3)、從J開始向前搜索,即由后開始向前搜索(J:=J-1),找到第一個小于X的值,兩者交換;

4)、從I開始向后搜索,即由前開始向后搜索(I:=I+1),找到第一個大于X的值,兩者交換;

5)、重復第3、4步,直到I=J;

快速排序就是遞歸調用此過程——在以49為中點分割這個數據序列,分別對前面一部分和后面一部分進行類似的快速排序,從而完成全部數據序列的快速排序,最后把此數據序列變成一個有序的序列

補充:小編在這里推薦一款本站的php格式化美化的排版工具幫助大家在以后的PHP程序設計中進行代碼排版:

php代碼在線格式化美化工具:

另外,由于php屬于C語言風格,因此下面這款工具同樣可以實現php代碼的格式化:

希望本文所述對大家PHP程序設計有所幫助。

總結

以上是生活随笔為你收集整理的php快速排序法远离,php快速排序原理与实现方法分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。