php 常用的算數排序

2021-07-25 22:43:07 字數 1530 閱讀 5619

1.氣泡排序:

原理:第乙個數字和所有數字進行比較,然後遇到大的交換位置,這樣第一次就把最大的放在了最後邊,然後繼續在比較,第二次比較的時候最後乙個數字就不用比較了,因為已經確定它是最大的了,以此類推。

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

比如:2,4,1

// 第一次 冒出的泡是4 *

2,1,4

// 第二次 冒出的泡是 2 *

1,2,4

// 最後就變成這樣

時間複雜度:氣泡排序是一種用時間換空間的排序方法,最壞情況是把順序的排列變成逆序,或者把逆序的數列變成順序。

<?php

$arr = array(1,45,21,89,12,5,2,46,23);

function getpao($arr)}}

return $arr;}

2.選擇排序:

實現思路

雙重迴圈完成,外層控制輪數,當前的最小值。內層

控制的比較次數

<?php

function select_sort($arr)

}//已經確定了當前的最小值的位置,儲存到$p中。如果發現 最小值的位置與當前假設的位置$i不同,則位置互換即可

if($p != $i)

}return $arr;}

?>

3.快速排序

<?php

function quick_sort($arr)

$base_num = $arr[0];                //如果沒有返回,說明陣列內的元素個數 多餘1個,需要排序 。選擇乙個標尺。 選擇第乙個元素

//初始化兩個陣列

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

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

for ($i=1; $i < $len; $i++)         //遍歷 除了標尺外的所有元素,按照大小關係放入兩個陣列內

else

}//再分別對 左邊 和 右邊的陣列進行相同的排序處理方式。遞迴呼叫這個函式,並記錄結果

$left_array = quick_sort($left_array);

$right_array = quick_sort($right_array);

return array_merge($left_array,array($base_num),$right_array);}

?>

4.插入排序

插入排序法思路:將要排序的元素插入到已經

假定排序號的陣列的指定位置。

<?php

function insert_sort($arr) else

return false;

}$arr = array(1,3,5,9,15,19);

$inx = binary_search($arr,3);

var_dump($inx);

?>

php 常用排序

ar array array 10 11 100 100 a array 1 2,2 3 1 array multisort ar 0 sort asc sort string ar 1 sort numeric sort desc var dump ar 本例中在排序後,第乙個陣列將變成 10 1...

php常用排序演算法

header content type text html charset utf 8 arr array 3,5,8,4,9,6,1,7,2 echo implode arr 常用排序演算法 冒泡 function bubblesort arr return arr echo 氣泡排序 echo ...

PHP常用排序演算法

1.氣泡排序 思路分析 在要排序的一組數中,對當前還未拍好的序列,從前往後對相鄰的兩個數一次進行比較和調整,讓較大的數往下沉,較小的數往上冒。也就是每倆個當相鄰的數比較厚發現他們的排序與排序要求相反時,就將他們互換 實現 function bubblesort arr return arr arr ...