插入排序

  • Larwas
  • 2019-06-21 17:00:56
  • php
  • PHP
插入排序 步骤:1. 从第一个元素开始,该元素可以认为已经被排序2. 取出下一个元素,在已经排序的元素序列中从后向前扫描3. 如果该元素(已排序)大于新元素,将该元素移到下一位置4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置5. 将新元素插入到该位置中6. 重复步骤2算法源代码```PHP$len = count($arr);for($i=1; $i<$len; $i++) { $tmp = $arr; for($j=$i
阅读全文

选择排序法

  • Larwas
  • 2019-06-21 15:01:52
  • php
  • PHP
选择排序法 原理:从未排序序列A找出最小元素,放到排序序列B末尾,知道所有元素排序完毕。算法源码```PHP/ 外层循环控制比较次数和当前最小元素; 里层循环作比较/$len = count($arr);for ($i=0;$i<$len1;$i++){ //记录当前最小值位置 $min = $i; for ($j=$i+1;$j<$len;$j++){ //与当前最小值做比较 if ($arr){
阅读全文

冒泡排序法

  • Larwas
  • 2019-06-21 14:44:49
  • php
  • PHP
冒泡排序法 原理如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。1. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。1. 针对所有的元素重复以上的步骤,除了最后一个。1. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 算法复杂度:O(n²)算法源代码```PHP/ 外层循环控制每个元素比较次数, 里层循环控制哪2个元素作比较。/$arr = ;$len =
阅读全文

二分查找算法

  • Larwas
  • 2019-06-21 14:25:10
  • php
  • PHP
二分查找 也称折半查找(Binary Search) 要求线性表采用顺序存储结构 要求其中元素按关键字有序排列一般步骤1. 确定要查找的区间1. 确定二分参照点1. 选取二分点1. 根据二分点的值,舍去一半无用区间1. 在有效区间重复上述步骤 算法源码```PHP/ 二分查找算法 @param array $arr 待查找区间 @param int $number 需查找的值 @return int 返回找到的
阅读全文

23.mysql 如何保证数据不丢失?

MySQL 如何保证binlog 和 redo log完整性
阅读全文

20.MySQL 幻读

阅读全文

21.mysql 间隙锁,行锁 和 next-key lock

阅读全文

19.查询一行的SQL语句为何很慢?

查询一行的SQL语句为何很慢?查询结果长时间不返回 原因:表被锁; 执行 show processlist 查看当前语句所处状态 状态1:等 MDL 锁 有一个线程正在表上请求,或者持有 MDL 锁,把 SELECT 语句堵住了。 show processlist 返回的是:waiting for table metadata lock 处理方法:找到谁持有 MDL 写锁,将其 kill 掉。 使用 select blocking_pid from sys.schem
阅读全文

MYSQL 索引为何会用不到?

MYSQL 索引为何会失效? 1.条件字段使用了函数操作对索引字段做函数操作会有以下影响: 破坏索引值的有序性,导致优化器放弃走树搜索功能(不一定是放弃使用索引) 2.隐式类型转换举个栗子:`varchar(32)` 字段 `uname` 输入参数使用整型如:`uname=123456` 实际执行的就是 `CAST(uname AS signed int) = 123456` 使用 `SELECT '10' 9 ; 返回 1` 可以知道,MySQL 的转
阅读全文

mysql 覆盖索引,前缀索引以及索引下推

阅读全文