look321 发表于 2017-4-9 11:40:17

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

<?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素材
页: [1]
查看完整版本: php简单排序之冒泡排序与选择排序