加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

算法与数据结构系列 ( 二 ) - 实现前的基础准备

发布时间:2020-12-13 21:02:27 所属栏目:PHP教程 来源:网络整理
导读:基础准备 我的使用验算的步骤是生成数据 - 记录时间 - 进行排序 - 记录时间 - 验算是否正确 - 归类时间那么我们,需要生成数据的函数,达到毫秒的函数,可以测算出是否已经排序成功的函数 首先生成可用测试的随机数据(函数) 这是验算的数据,所以只需要混

基础准备

我的使用验算的步骤是
生成数据 -> 记录时间 -> 进行排序 -> 记录时间 -> 验算是否正确 -> 归类时间
那么我们,需要生成数据的函数,达到毫秒的函数,可以测算出是否已经排序成功的函数

首先生成可用测试的随机数据(函数)

  • 这是验算的数据,所以只需要混交的就行
  • 通过传入所需要生成的总数,生成 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;
}

  

获取毫秒时间(函数)

  • 在?php?中是没有毫秒函数的,只能自己写一个
  • 在数据量小的情况下,算法是按照毫秒计算的,不是秒
/**
* 获取毫秒时间
* @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);
}

  

更多学习内容请访问:

八重樱:腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读