使用 PHP 实现插入排序算法

学习笔记 马富天 2017-09-23 14:29:59 80 0

【摘要】插入排序算法是典型的排序算法之前,在笔试过程中会常常遇到,所以在这里做一个学习笔记。

插入排序算法的基本思路如下:

有一个数列长度为 n,则需要排序的次数是 n - 1。每次排序都会设置一个记录数,该记录数与之前的数进行依次比较,进行排序。具体实现如下实例所描述。

实例:[2,5,1,6,3]

第一次排序:记录数是 5,5 > 2,则保持不变:[2,5,1,6,3];

第二次排序:记录数是 1,1 < 5,交换值:[2,1,5,6,3],1 < 2,交换值:[1,2,5,6,3];

第三次排序:记录数是 6,6 > 5,保持不变:[1,2,5,6,3];

第四次排序:记录数是 3,3 < 6,交换值:[1,2,5,3,6],3 < 5 交换值:[1,2,3,5,6]。

则整个排序过程结束。

完整的 PHP 代码实现如下:

  1. // 插入排序算法
  2. function insertSort( $arr ) 
  3. {
  4.     $len = count($arr);
  5.     //	$i 从数列中的第二个数开始
  6.     for($i = 1; $i < $len; $i ++) 
  7.     {         
  8.         $tmp = $arr[$i];	// 记录一个值 
  9.         // 把 $i 之前的数, 从后往前进行比较, 如果大于 $tmp , 就后移该值的位置
  10.         for($j = $i - 1; $j >= 0 && $arr[$j] > $tmp ; $j --) 
  11.         { 
  12.             $arr[$j+1] = $arr[$j];
  13.         }
  14.         $arr[$j+1] = $tmp;
  15.     }
  16.     return $arr;
  17. }
  18. $arr = [2,5,1,6,3];
  19. var_dump(insertSort($arr));

执行结果如下所示:

请输入图片名称

版权归 马富天PHP博客 所有

本文标题:《使用 PHP 实现插入排序算法》

本文链接地址:http://www.mafutian.net/325.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 提供一种 PHP 源代码加密和解密的方法 》 下一篇《 多存蓄自身能量,少盲目跟随 》

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多