基础准备
首先生成可用测试的随机数据(函数)
- 这是验算的数据,所以只需要混交的就行
- 通过传入所需要生成的总数,生成 num 条数据,比如:10 条
- 数据内容是随机从开始到结束的数字,比如:从 1 到 10
- 注意 rangeR 要比 rangeL 小
/** * 生成随机数据 * @param int $num 需要生成的总数 * @param int $rangeL 开始数字 * @param int $rangeR 结束数字 * @return array */ function generateSort(int $num,int $rangeL,int $rangeR):array { $sort = array(); for ($i = 0; $i < $num;$i++){ $sort[$i] = rand($rangeL,$rangeR); } return $sort; }
还有生成一种近乎有序的数据(函数)
- 和上面类似
- 但是随机最小值会往上走,达到近乎有序
/** * 生成随机数据 * @param int $num 需要生成的总数 * @param int $rangeL 开始数字 * @param int $rangeR 结束数字 * @return array */ function generateSort(int $num,int $rangeR):array { $sort = array(); for ($i = 0; $i < $num;$i++){ $sort[$i] = rand($rangeL + $i,$rangeR); } return $sort; }
验算是否排序正确的(函数)
- 我这里做的比较简单
- 循环一次,当上一个数字,比下一个数字要小的时候则是不正确
- 在我们生成数字的时候,是绝对不会相对有序的
/** * 验算是否正确 * @param array $sort * @return bool */ function isSort(array $sort):bool { $n = count($sort); for($i = 0; $i < $n - 1; $i++){ if($sort[$i] > $sort[$i + 1]){ return false; } } return true; }
获取毫秒时间(函数)
/** * 获取毫秒时间 * @return float */ function millisecond():float { list($msec,$sec) = explode(' ',microtime()); return (float)sprintf('%.0f',(floatval($msec) + floatval($sec)) * 1000); }
打印函数
- 因为我们用的是原生的
PHP
,而且用的是fpm
。 - 数据打印在浏览器上,为了我们的视觉感受,我觉得这个有必要
/** * 一个好看一点的打印函数 * @param $var */ function dump($var){ ob_start(); var_dump($var); $output = preg_replace('/\]\=\>\n(\s+)/m','] => ',ob_get_clean()); if (!extension_loaded('xdebug')) { $output = htmlspecialchars($output,ENT_SUBSTITUTE); } $output = '<pre>' . $output . '</pre>'; echo($output); }
更多学习内容请访问: