php的四种基本算法

$arr = array(13,1,65,4,6,41,61,68);

$num = count($arr);

/**

 * 冒泡排序

 */

for ($i=1; $i < $num ; $i++)

    {

        for ($j=0; $j < $num-$i ; $j++)

            {

                if($arr[$j] > $arr[$j+1])

                {

                    $data = $arr[$j+1];

                    $arr[$j+1] = $arr[$j];

                    $arr[$j] = $data;

                }

            }

    }

    echo “<pre>”;

    print_r($arr);

/**

 * 选择排序

 */

for ($i=0; $i < $num-1; $i++)

{

        $p = $i;

        for ($j=$i+1; $j <$num ; $j++)

        {

            if($arr[$p] > $arr[$j])

            {

                $p = $j;

            }

        }

        if($p != $i)

        {

            $data = $arr[$p];

            $arr[$p] = $arr[$i];

            $arr[$i] = $data;

        }

}

echo “<pre>”;

print_r($arr);

/**

 * 插入排序

 */

for ($i=1; $i <$num ; $i++)

{

    $data = $arr[$i];

    for ($j=$i-1; $j >=0; $j–)

    {

        if($data < $arr[$j])

        {

            $arr[$j+1] = $arr[$j];

            $arr[$j] = $data;

        }

    }

}

echo “<pre>”;

print_r($arr);

/**

 * 快速排序

 */

if($num <= 1)

{

    return $arr;

}

$base_num = $arr[0];

$left = array();

$right = array();

for ($i=1; $i < $num; $i++)

{

    if($base_num > $arr[$i])

    {

        $left[] = $arr[$i];

    }

    else

    {

        $right[] = $arr[$i];

    }

}

echo “<pre>”;

print_r(array_merge($left,array($base_num),$right));

点赞