php简单排序之冒泡排序与选择排序

2 篇文章 0 订阅

<?php

$arr = array(100,2,4,5,6,1,7,3);
var_dump($arr);
$sort = fn_sort($arr);
var_dump($sort);

$selectorsort = fn_selectsort($arr);
var_dump($selectorsort);


/**
* 冒泡排序 每相邻的两位数组进行比较,比较大的放后面
*/
//$arr = array(100,2,4,5,6,1,7,3);
//array(2,4,5,6,1,7,3,100) 第一遍
//array(2,4,5,1,6,3,7,100) 第二遍
//array(2,4,5,1,3,6,7,100) 第三遍
//array(2,4,1,3,5,6,7,100) 第四遍
//...
//array(1,2,3,4,5,6,7,100) 最后一遍

function fn_sort($arr){
for($i = 0;$i < (count($arr)); $i++){
for($j = $i;$j < count($arr);$j++){
if($arr[$i] > $arr[$j]){
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
}
}

}
return $arr;
}


/**
* 选择排序排序selectsort 关键是找到最小数组的下标
*/
//$arr = array(100,2,4,5,6,1,7,3);
//array(1,2,4,5,6,100,7,3) 第一遍
//array(1,2,4,5,6,100,7,3) 第二遍
//array(1,2,3,5,6,100,7,4) 第三遍
//array(1,2,3,4,6,100,7,5) 第四遍
//...
//array(1,2,3,4,5,6,7,100) 最后一遍
function fn_selectsort($arr){
for($i = 0; $i < count($arr); $i++){
$min = $i;
for($j = $i+1; $j < count($arr); $j++){
if($arr[$min] > $arr[$j]){
$min = $j; //找到最小的那个数组下标
}
}

//如果已经找到了最小数组下标,就替换当前数组与找到的最小数组进行替换
if($min != $i){
$temp = $arr[$i];
$arr[$i] = $arr[$min];
$arr[$min] = $temp;
}

}
return $arr;
}
?>



by:19素材
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值