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 ...