Beispiel #1
0
    $length = count($list);
    for ($i = 0; $i < $length; $i++) {
        $key = $i;
        for ($j = $i + 1; $j < $length; $j++) {
            if ($list[$j] < $list[$key]) {
                $key = $j;
            }
        }
        $temp = $list[$key];
        $list[$key] = $list[$i];
        $list[$i] = $temp;
    }
    return $list;
}
$list = array(3, 6, 2, 4, 10, 1, 9, 8, 5, 7);
var_dump(selectSort($list));
/**
 * 分析:
 * 原数组:[ 3 ,6 ,2 ,4 ,10 ,1 ,9 ,8 ,5 ,7 ]
 * key:5
 * [ 1 ,6 ,2 ,4 ,10 ,3 ,9 ,8 ,5 ,7 ]
 * key:2
 * [ 1 ,2 ,6 ,4 ,10 ,3 ,9 ,8 ,5 ,7 ]
 * key:5
 * [ 1 ,2 ,3 ,4 ,10 ,6 ,9 ,8 ,5 ,7 ]
 * key:3
 * [ 1 ,2 ,3 ,4 ,10 ,6 ,9 ,8 ,5 ,7 ]
 * key:8
 * [ 1 ,2 ,3 ,4 ,5 ,6 ,9 ,8 ,10 ,7 ]
 * key:5
 * [ 1 ,2 ,3 ,4 ,5 ,6 ,9 ,8 ,10 ,7 ]
Beispiel #2
0
function testArrayData()
{
    $aData = '';
    $aData = array(3, 2, 4, 1, 6, 0);
    responseArray($aData, '原来顺序');
    responseArray(selectSort($aData), '选择排序');
    responseArray(quickSort($aData), '快速排序');
    responseArray(insertSort($aData), '插入排序');
    responseArray(bubbleSort($aData), '冒泡排序');
    responseArray(reQuickSort($aData), '反序排序');
    echo '<b>最 大 值:</b>' . $GLOBALS['PHPMax']($aData) . '<hr>';
    echo '<b>最 小 值:</b>' . $GLOBALS['PHPMin']($aData) . '<hr>';
}
Beispiel #3
0
<?php

//选择排序法--选取最小值
$arr = array(72, 34, 9, 4, 52, 16, 1);
function selectSort(&$arr)
{
    $temp = 0;
    for ($i = 0; $i < count($arr) - 1; $i++) {
        //假设$i就是最小的数
        $minVal = $arr[$i];
        //记录我认为的最小数的下标
        $minIndex = $i;
        for ($j = $i + 1; $j < count($arr); $j++) {
            if ($minVal > $arr[$j]) {
                //说明我们认为的最小值不是实际的最小值
                $minVal = $arr[$j];
                $minIndex = $j;
            }
        }
        //最后交换
        $temp = $arr[$i];
        $arr[$i] = $arr[$minIndex];
        $arr[$minIndex] = $temp;
    }
}
//调用函数
selectSort($arr);
//输出
print_r($arr);
Beispiel #4
0
<?php

$list = [5, 4, 1, 7, 9, 2, 0, 3, 6, 8];
function selectSort(&$list)
{
    $length = count($list);
    for ($i = 0; $i < $length; $i++) {
        $min = $list[$i];
        $index = $i;
        for ($j = $i + 1; $j < $length; $j++) {
            if ($min > $list[$j]) {
                $min = $list[$j];
                $index = $j;
            }
        }
        $tmp = $list[$i];
        $list[$i] = $min;
        $list[$index] = $tmp;
    }
}
selectSort($list);