php數組倒序排列,php中數組排序函數有哪些

本文目錄一覽:

PHP中的快速排序算法如何實現倒序?

您好,這樣的:

1. 冒泡排序法

* 思路分析:法如其名,就是像冒泡一樣,每次從數組當中 冒一個最大的數出來。

* 比如:2,4,1 // 第一次 冒出的泡是4

* 2,1,4 // 第二次 冒出的泡是 2

* 1,2,4 // 最後就變成這樣

view sourceprint?

01.$arr=array(1,43,54,62,21,66,32,78,36,76,39);

02.function getpao($arr)

03.{

04.$len=count($arr);

05.//設置一個空數組 用來接收冒出來的泡

06.//該層循環控制 需要冒泡的輪數

07.for($i=1;$i$len;$i++)

08.{ //該層循環用來控制每輪 冒出一個數 需要比較的次數

09.for($k=0;$k$len-$i;$k++)

10.{

11.if($arr[$k]$arr[$k+1])

12.{

13.$tmp=$arr[$k+1];

14.$arr[$k+1]=$arr[$k];

15.$arr[$k]=$tmp;

16.}

17.}

18.}

19.return $arr;

20.}

2. 選擇排序法:

選擇排序法思路: 每次選擇一個相應的元素,然後將其放到指定的位置

view sourceprint?

01.function select_sort($arr) {

02.//實現思路 雙重循環完成,外層控制輪數,當前的最小值。內層 控制的比較次數

03.//$i 當前最小值的位置, 需要參與比較的元素

04.for($i=0, $len=count($arr); $i$len-1; $i++) {

05.//先假設最小的值的位置

06.$p = $i;

07.//$j 當前都需要和哪些元素比較,$i 後邊的。

08.for($j=$i+1; $j$len; $j++) {

09.//$arr[$p] 是 當前已知的最小值

10.if($arr[$p] $arr[$j]) {

11.//比較,發現更小的,記錄下最小值的位置;並且在下次比較時,

12.// 應該採用已知的最小值進行比較。

13.$p = $j;

14.}

15.}

16.//已經確定了當前的最小值的位置,保存到$p中。

17.//如果發現 最小值的位置與當前假設的位置$i不同,則位置互換即可

18.if($p != $i) {

19.$tmp = $arr[$p];

20.$arr[$p] = $arr[$i];

21.$arr[$i] = $tmp;

22.}

23.}

24.//返回最終結果

25.return $arr;

26.}

3.插入排序法

插入排序法思路:將要排序的元素插入到已經 假定排序號的數組的指定位置。

view sourceprint?

01.function insert_sort($arr) {

02.//區分 哪部分是已經排序好的

03.//哪部分是沒有排序的

04.//找到其中一個需要排序的元素

05.//這個元素 就是從第二個元素開始,到最後一個元素都是這個需要排序的元素

06.//利用循環就可以標誌出來

07.//i循環控制 每次需要插入的元素,一旦需要插入的元素控制好了,

08.//間接已經將數組分成了2部分,下標小於當前的(左邊的),是排序好的序列

09.for($i=1, $len=count($arr); $i$len; $i++) {

10.//獲得當前需要比較的元素值。

11.$tmp = $arr[$i];

12.//內層循環控制 比較 並 插入

13.for($j=$i-1;$j=0;$j–) {

14.//$arr[$i];//需要插入的元素; $arr[$j];//需要比較的元素

15.if($tmp $arr[$j]) {

16.//發現插入的元素要小,交換位置

17.//將後邊的元素與前面的元素互換

18.$arr[$j+1] = $arr[$j];

19.//將前面的數設置為 當前需要交換的數

20.$arr[$j] = $tmp;

21.} else {

22.//如果碰到不需要移動的元素

23.//由於是已經排序好是數組,則前面的就不需要再次比較了。

24.break;

25.}

26.}

27.}

28.//將這個元素 插入到已經排序好的序列內。

29.//返回

30.return $arr;

31.}

4.快速排序法

view sourceprint?

01.function quick_sort($arr) {

02.//先判斷是否需要繼續進行

03.$length = count($arr);

04.if($length = 1) {

05.return $arr;

06.}

07.//如果沒有返回,說明數組內的元素個數 多餘1個,需要排序

08.//選擇一個標尺

09.//選擇第一個元素

10.$base_num = $arr[0];

11.//遍歷 除了標尺外的所有元素,按照大小關係放入兩個數組內

12.//初始化兩個數組

13.$left_array = array();//小於標尺的

14.$right_array = array();//大於標尺的

15.for($i=1; $i$length; $i++) {

16.if($base_num $arr[$i]) {

17.//放入左邊數組

18.$left_array[] = $arr[$i];

19.} else {

20.//放入右邊

21.$right_array[] = $arr[$i];

22.}

23.}

24.//再分別對 左邊 和 右邊的數組進行相同的排序處理方式

25.//遞歸調用這個函數,並記錄結果

26.$left_array = quick_sort($left_array);

27.$right_array = quick_sort($right_array);

28.//合併左邊 標尺 右邊

29.return array_merge($left_array, array($base_num), $right_array);

30.}

PHP如何讓數據倒序顯示

$q = “SELECT * FROM liuyan”;                   //SQL查詢語句

將這句sql命令加一個排序方式的order by命令,例如安裝表中的id排序:

$q = “SELECT * FROM liuyan ORDER BY id DESC”;

desc表示倒序。

學習詳細的phpweb開發方面的只是推薦一個叫 追太陽 的小站,裡面站長有很多經驗之談。另外,去w3c官網也可以。

php 數組 固定條數 倒序

其實多看看php手冊還是有幫助的,LZ所說的正序和倒序是用在什麼上?如果是數組上直接使用: 對數組按照鍵名排序:ksort($array) 對數組按照鍵名逆向排序:krsort($array) 對數組進行排序並保持索引關係:asort($array) 對數組進行逆向排序並保持…

原創文章,作者:FUCRF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329152.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FUCRF的頭像FUCRF
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python通配符有哪些

    Python通配符是一種表示字符串中模糊匹配的有效工具,用於匹配與具有特定模式匹配的字符串。Python中主要的通配符有:*,?,[]和{}。 一、星號通配符 * 在Python中…

    編程 2025-04-29

發表回復

登錄後才能評論