首頁 >後端開發 >php教程 >php簡單排序之冒泡排序與選擇排序

php簡單排序之冒泡排序與選擇排序

WBOY
WBOY原創
2016-08-08 09:23:56943瀏覽
<?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素材

以上就介紹了php簡單排序之冒泡排序與選擇排序,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn