PHP的三種排序方式

2021-01-08 良行

數組排序

排序基礎

大約有幾十種方法的排序;

php中,排序相當簡單:一個函數搞定!

比如:

$arr5 = array( 12, 'aa'=>8, 6=>10,'bb'=> 3, 4);

//sort($arr5); //排完了!——他們按正序排列了,下標變成了0,1,2,3,4

//asort($arr5); //也排完了——他們按正序排列了,而且下標還保持關係

rsort($arr5); //又排完了——他們按倒序排列了

更多詳見:

冒泡排序

$a1 = array( 8, 10, 3, 7, 11, 5 );

冒泡排序規律:

1,一個數組的長n是可獲得的:$n = count($a1);

2,要進行從左到右的「比較」趟數為n-1趟;

3,每一趟要進行比較的次數都比前一趟少1次,並且:第1趟要比較n-1次(n個數參與比較)

4,每一次都是比較緊挨著的兩個數據,並且如果左邊的數比右邊的大,則需要將他們交換位置

代碼:

選擇排序:

$a1 = array( 8, 10, 3, 7, 11, 5 );

描述:

從當前「剩餘」沒有排序的數據中,找出其中的最大值及其下標,並將該項跟這些數據中的最後一項進行交換位置。這樣每趟都可以確定一個當前剩餘數據中的最大值並放在最後。經過若干趟之後,就都可以排列完成。

選擇排序的規律:

1,一個數組的長n是可獲得的:$n = count($a1);

2,要進行找出剩餘數據中的最大值的趟數是n-1;

3,每一趟要找最大值的數據個數比前一趟少一個,並且第一趟有n個數據;

4,每一趟結束後,都可以找出其中的最大值及其下標,此時要將該項跟這一趟的最後一項交換位置;

代碼實現:

相關焦點

  • PHP如何實現選擇排序
    選擇排序在冒泡排序的基礎上進行了改進,每次通過列表時只進行一次傳遞交換。簡單來說,選擇排序的原理就是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法。
  • PHP中數組元素升序、降序及重新排序的函數
    首頁 > 語言 > 關鍵詞 > php最新資訊 > 正文 PHP中數組元素升序、降序及重新排序的函數
  • PHP高級編程-回歸原生態-數組排序陷阱
    php$students = array( array('name' => '張三', 'point' => 76), array('name' => '李四', 'point' => 98), array('name' => '小明', 'point' => 95), array('name' => '小紅', 'point' =&
  • PHP實現耐心排序(patience sort)算法
    耐心排序(patience sort)是一種排序算法,靈感來源於紙牌遊戲patience,並以此命名。該算法的一個變體可以有效地計算給定數組中最長遞增子序列的長度。該算法的名字來源於一個簡化版的patience紙牌遊戲。這個遊戲以一副洗牌開始。
  • PHP基礎
    php }?> </tr><?php }?>    <?php }? 如果文件出現錯誤  報錯之後將終止以下代碼執行include_once和require_once,即使重複引入也會只當引入一次數組//array_rand(),隨機輸出數組的鍵值//數組的排序sort值的排序1.不拿鍵值
  • 實例,PHP實現下載文件的三種方法
    2、傳遞參數並下載傳遞參數:<button><a href="tt.php?filename=lib.zip">下載文件</a></button>下載文件php代碼:3、head() 和 fread()函數把文件直接輸出到瀏覽器總結:第一個和第二個操作比較簡單,但是容易暴露文件的真實地址,安全性不高,
  • PHP基礎入門
    ,不保留鍵名rsort()對數組逆向排序,不保留鍵名asort()對數組排序,保持索引關係arsort()對數組逆向排序,保持索引關係ksort()按鍵名對數組排序krsort()將數組按照鍵逆向排序natsort()用自然順序算法對數組中的元素排序natcasesort()自然排序,不區分大小寫
  • PHP數組使用之道(乾貨)
    微信公眾號:PHP在線這個教程我將通過一些實用的實例和最佳實踐的方式列舉出 PHP 中常用的數組函數。每個 PHP 工程師都應該掌握它們的使用方法,以及如何通過組合使用來編寫更精簡且易讀的代碼。另外,我們提供了相關示例代碼的演示文稿,你可以從相關連結下載它,並分享給你的團隊來打造更強的團隊。
  • (筆試題)php練習筆試題(二)
    注意:多個選答題必須選擇至少一道題回答,本題開卷考試選答題1、寫一個函數,儘可能高效的,從一個標準url裡取出文件的擴展名例如:http://www.sina.com.cn/abc/def/fg.php?
  • PHP面試題
    配置選項 ..24php-fpm.conf 配置...25502、504 錯誤產生原因及解決方式....25如何返回一個 301 重定向 ..26這三種基本的控制結構是順序、分支和循環3.將待排序的一組元素按一定間隔分為若干個序列,分別進行插入排序。
  • 2020 PHP面試題(附帶答案)
    請寫出常見的排序算法,並用PHP實現冒泡排序,將數組$a = array()按照從小到大的方式進行排序。常見的排序算法: 冒泡排序法、快速排序法、簡單選擇排序法、堆排序法、直接插入排序法、希爾排序法、合併排序法。冒泡排序法的基本思想是:對待排序記錄關鍵字從後往前(逆序)進行多遍掃描,當發現相鄰兩個關鍵字的次序與排序要求的規則不符時,就將這兩個記錄進行交換。
  • php有哪三種基本的程序結構?
    任何程式語言都是很多條語句構成的,php語言也不例外,這些語句包括賦值、函數調用、循環語句、空語句等,我們也可以把若干個語句封裝起來成為語句組,語句組本身也可以當成一行語句。語言結構是程序的核心部分,任何功能模塊都離不開它。
  • PHP運行方式介紹
    進程變為空閒狀態,等待下次請求 ->Web伺服器接收內容->返回給用戶Fast-CGI 和 CGI 都是一種協議,開啟的進程是單獨實現該協議的進程模塊模式Apache + php運行時,默認使用的是模塊模式,它把 php 作為 Apache 的模塊隨 Apache 啟動而啟動。
  • 冒泡排序(PHP代碼)
    冒泡排序冒泡排序的原理:PHP代碼(冒泡排序)解釋:為了方便理解,在第6行自定義了一個簡單的數組 array(4,3,2,1)。排序結果
  • php語言常見小知識匯總:快速掌握php就差這一步
    PHP語言一直是網際網路繞不開的語言,同時改語言在網際網路編程中佔據著重要的地位,幾乎所有的網際網路方面的小程序都可以通過php語言來完成。因此php語言的重要性不言而喻。因此,今天,我們就一起來學習一下php方面的小知識。一下數據參照了百度知道的詞條。
  • PHP數組排序函數大全
    介紹在眾多數組排序函數中,最常用的排序函數:sort、rsort、asort、arsort。主要區別1.有些函數基於 array 的鍵來排序,而其他的基於值來排序的:$array['key'] = 'value';。
  • 【每天一題】PHP中常用的數組操作方法筆記整理
    數組的基本操作php定義數組:<?php  $array = array();  $array["key"] = "values"; ?> 在PHP中聲明數組的方式主要有兩種:1.用array()函數聲明數組,2.直接為數組元素賦值。<?
  • PHP如何刪除數組中的重複元素 - php中文網
    php$result1 = array("a" => "green", "red", "b" => "green", "blue", "red");var_dump($result1);$result2 = array_unique($result1);var_dump($result2
  • 到底什麼是堆排序 PHP
    堆排序的時間複雜度為O(nlogn)。堆是一種特殊的二叉樹,它滿足以下兩點:1. 堆是一個完全二叉樹2. 堆中每個節點都必須大於等於(或小於等於) 其子樹的每個節點堆排序分為兩個步驟:建堆和排序建堆:從最後一個父節點開始,由下往上進行調整 $i = $n/2 -1, n 為數組的數量。我們以初始化數組 [4,10,3,5,6,12,9,22]為例 ,n=8時,$i = $n/2 -1, i=3, 對應的下圖中的節點5 。
  • 2019年最新PHP經典面試題及答案,PHP程式設計師必看
    源 / php中文網      源 / www.php.cn2019年最新PHP經典面試題及答案,PHP程式設計師必看.1、用最少的代碼寫一個求3值最大值的函數.相當於 error_reporting('E_ALL'); 輸出所有的錯誤7、打開php.ini中的Safe_mode,會影響哪些參數?至少說出6個。