PHP 插入排序 - 直接插入排序
Posted 伟洪winnie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 插入排序 - 直接插入排序相关的知识,希望对你有一定的参考价值。
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
//TODO : 插入排序 - 直接插入排序
/*
最好的情况 : T = O(N)
最坏的情况 : T = O(N^2)
稳定
*/
function InsertionSort($data, $L)
{
$time_start = microtime_float();
for ($i = 1; $i < $L; $i++) {
for ($j = $i; $j > 0 && $data[$j] < $data[$j - 1]; $j--) {
list($data[$j], $data[$j - 1]) = [$data[$j - 1], $data[$j]];
}
}
$time_end = microtime_float();
echo "InsertionSort - Time:" . ($time_end - $time_start) . "s" . "<br>";
return $data;
}
function main()
{
//TODO : 生成数据
$number = [];
for ($i = 0; $i < 10000; $i++) {
$number[] = rand(0, 1000000000);
}
// echo "<pre>";
// print_r($number);
// print_r(InsertionSort($number, count($number)));
InsertionSort($number, count($number));
}
main();
以上是关于PHP 插入排序 - 直接插入排序的主要内容,如果未能解决你的问题,请参考以下文章
插入排序(直接插入排序折半插入排序希尔排序的算法思想及代码实现)
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚