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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP快速排序(原地切分)

發(fā)布時(shí)間:2023/12/31 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP快速排序(原地切分) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

????????快速排序是一種分治的排序算法,采用遞歸的思想,將數(shù)組元素分為兩部分,選擇切分元素,左右掃描數(shù)組,將大于切分元素的數(shù)據(jù)放在右邊,小于切分元素的數(shù)據(jù)放在左邊,直到掃描指針相遇,切分結(jié)束,同時(shí)遞歸調(diào)用,直到數(shù)組有序。

????? ? 代碼如下:

<?php function quick_sort(array& $array,$low,$high){if($low >= $high){return $array;//遞歸出口,數(shù)組的最高位下標(biāo)小于數(shù)組最低位下標(biāo)}$i = $low;$j = $high+1; //數(shù)組切分循環(huán)$v = $array[$low];//切分元素while(true){//循環(huán)查找while($array[--$j] >= $v)if($j == $low)break;//從右往左查找第一個(gè)比$v小的元素while($array[++$i] <= $v)if($i == $high)break;//從左往右查找第一個(gè)比$v大的元素if($i >= $j)break;//指針相遇$tmp = $array[$j];$array[$j] = $array[$i];$array[$i] = $tmp; //元素位置交換}$array[$low] = $array[$j];$array[$j]= $v;//將切分元素放入相應(yīng)位置quick_sort($array,$low,$j-1);quick_sort($array,$j+1,$high); //遞歸調(diào)用}$array = array('1','3','2','5','6','5'); $high = count($array); quick_sort($array,0,$high-1); var_dump($array); ?>

同時(shí)也可以用shuffle()函數(shù)對(duì)數(shù)組進(jìn)行打亂,以便消除對(duì)輸入的依賴~

轉(zhuǎn)載于:https://my.oschina.net/aqingyan/blog/758901

總結(jié)

以上是生活随笔為你收集整理的PHP快速排序(原地切分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。