Heim  >  Artikel  >  Backend-Entwicklung  >  PHP实现各种排序算法

PHP实现各种排序算法

WBOY
WBOYOriginal
2016-07-25 09:12:38781Durchsuche


// 冒泡排序
function BubbleSort($arr) {
// 获得数组总长度
$num = count($arr);
// 正向遍历数组
for ($i = 1; $i $num; $i++) {
// 反向遍历
for ($j = $num - 1; $j >= $i ; $j--) {
// 相邻两个数比较
if ($arr[$j] $arr[$j-1]) {
// 暂存较小的数
$iTemp = $arr[$j-1];
// 把较大的放前面
$arr[$j-1] = $arr[$j];
// 较小的放后面
$arr[$j] = $iTemp;
}
}
}
return $arr;
}

// 交换法排序
function ExchangeSort($arr){
$num = count($arr);
// 遍历数组
for ($i = 0;$i $num - 1; $i++) {
// 获得当前索引的下一个索引
for ($j = $i + 1; $j $num; $j++) {
// 比较相邻两个的值大小
if ($arr[$j] $arr[$i]) {
// 暂存较小的数
$iTemp = $arr[$i];
// 把较大的放前面
$arr[$i] = $arr[$j];
// 较小的放后面
$arr[$j] = $iTemp;
}
}
}
return $arr;
}

// 选择法排序
function SelectSort($arr) {
// 获得数组总长度
$num = count($arr);
// 遍历数组
for ($i = 0;$i $num-1; $i++) {
// 暂存当前值
$iTemp = $arr[$i];
// 暂存当前位置
$iPos = $i;
// 遍历当前位置以后的数据
for ($j = $i + 1;$j $num; $j++){
// 如果有小于当前值的
if ($arr[$j] $iTemp) {
// 暂存最小值
$iTemp = $arr[$j];
// 暂存位置
$iPos = $j;
}
}
// 把当前值放到算好的位置
$arr[$iPos] = $arr[$i];
// 把当前值换成算好的值
$arr[$i] = $iTemp;
}
return $arr;
}

// 插入法排序
function InsertSort($arr){
$num = count($arr);
// 遍历数组
for ($i = 1;$i $num; $i++) {
// 获得当前值
$iTemp = $arr[$i];
// 获得当前值的前一个位置
$iPos = $i - 1;
// 如果当前值小于前一个值切未到数组开始位置
while (($iPos >= 0) && ($iTemp $arr[$iPos])) {
// 把前一个的值往后放一位
$arr[$iPos

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:iframe式ajax调用示例 Nächster Artikel:PHP字符串处理函数大全