PHP基礎之排序

2022-01-10 20:24:33 字數 1694 閱讀 1859

之前簡單介紹了流程控制,函式,陣列等。有興趣的可以看看。

php入門之型別與運算子

php入門之流程控制

php入門之函式

php入門之陣列

接下來介紹一下排序,排序是將一組資料,依指定的順序進行排列的過程。常用的排序方法有冒泡法,選擇排序法,插入排序法。

思想:

它重複走過要排序的元素列,依次比較兩個相鄰的元素,如果順序錯誤就把它們交換過來,直到沒有需要交換的為止。

**案例:

<?php

#氣泡排序

$myarr=array(4,3,9,1,6,23.5);

function bubblesort (&$myarr)}}

}bubblesort($myarr);

print_r($myarr); #列印陣列

?>

輸出結果為:

array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )

思想:

假設第乙個為最小(大)元素,依次比較,如果錯誤,交換順序,找到未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

**案例:

<?php

#選擇排序

$myarr=array(4,3,9,1,6,23.5);

function selectionsort (&$myarr)

}$temp=$myarr[$i];

$myarr[$i]=$myarr[$minindex];

$myarr[$minindex]=$temp;

}}selectionsort($myarr);

print_r($myarr); #列印陣列

?>

輸出結果:

array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )

思想:

插入排序就像我們玩撲克牌,右手為亂排的,我們一張張檢視,為它找合適的位置插入到左手的有序牌中。

插入排序是指在待排序的元素中,假設前面n-1(其中n>=2)個數已經是排好順序的,現將第n個數插到前面已經排好的序列中,然後找到合適自己的位置,使得插入第n個數的這個序列也是排好順序的。按照此法對所有元素進行插入,直到整個序列排為有序的過程,稱為插入排序。

**案例:

<?php

#插入排序

$myarr=array(4,3,9,1,6,23.5);

function insertsort (&$myarr)

#插入(給$insertval找到合適的位置)

$myarr[$insertindex+1]=$insertval;

}}insertsort($myarr);

print_r($myarr);

?>

輸出結果:

array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )

簡單介紹了一下常用的三種排序方法,希望對大家有所幫助。

用php實現基礎演算法之氣泡排序

首先簡單描述一下氣泡排序的基本思想 假設有乙個無序數列 一共有n個元素 我們取出第1個元素與第2個元素做比較,如果第1個元素大於第2個元素,那麼就交換這兩個元素的位置 然後第2個元素再與第3個元素做比較。一直到比較第n 1個元素與第n個元素,這樣經過一輪的比較之後就把最大的數排到了最後面 然後從頭再...

PHP之氣泡排序

昨天去酷狗面試的時候,在筆試那一關,有道要求用php實現氣泡排序的程式設計題,因為實在太久沒用過氣泡排序,忘記了演算法的原理,結果留了空白,實在無語。因此今天把php的氣泡排序 記錄一下 氣泡排序 param array numbers 要排序的陣列,只限數字一維陣列 param boolean a...

php之選擇排序

選擇排序 原理 在一列數字中,選出最小數與第乙個位置的數交換。然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。以下都是公升序排列,即從小到大排列 舉例說明 arr array 6,3,8,2,9,1 第一輪 第一次比較,第乙個數 6 與 3,8,2,9,...