php之插入排序
来源:互联网 发布:四海认证淘宝渔具特价 编辑:程序博客网 时间:2024/06/15 11:07
1.直接插入排序代码实现:
<?phpheader("content-type:text/html;charset=utf-8");//直接插入排序实现从小到大排序//思路:每一趟排序将待排序的记录(元素)插入到前面的有序数列中,从左到右不断增大有序数列//关键:找到前面的有序数列中正确插入位置。$arr =array(6,18,2,4,16,8);echo "<br>排序前:<br>";print_r($arr);insertSort($arr);echo "<br>排序后:<br>";print_r($arr);function insertSort(&$arr){ $len = count($arr); //从第二个记录起,跟前面的有序数列比较寻找插入位置 for($i = 1;$i < $len; $i++) { $insertData = $arr[$i];//要插入的记录 $pos = $i;//插入位置 for($j = $i - 1;$j >= 0;$j--) { if($arr[$j] > $insertData)//如果前面的记录大于要插入的记录 { $arr[$j+1] = $arr[$j];//前面的记录往后移一个下标 $pos--; } else { break; } } $arr[$pos] = $insertData;//插入到正确位置 echo "<br>第{$i}趟排序结果:"; print_r($arr); }}
2.二分查找插入排序代码实现
<?phpheader("content-type:text/html;charset=utf-8");//二分查找插入排序:跟直接插入排序思路差不多,不同在通过二分查找来确定插入位置$arr =array(6,18,2,4,16,8);echo "<br>排序前:<br>";print_r($arr);bsInsertSort($arr);echo "<br>排序后:<br>";print_r($arr);function bsInsertSort(&$arr){ $len = count($arr); for($i = 1;$i < $len; $i++) { $left = 0; $right = $i -1; $mid = 0; $insertData = $arr[$i];//要插入的记录 while($left<=$right) { $mid = ($left + $right)/2; if($insertData > $arr[$mid]) { $left = $mid + 1; }else { $right = $mid -1; } } //$left是要插入的位置 for($j=$i-1;$j>=$left;$j--) { $arr[$j+1] = $arr[$j];//后移比插入记录大的数 } $arr[$left] = $insertData; }}
0 0
- php之插入排序
- PHP算法之插入排序
- php算法之插入排序
- C语言之插入排序&php之插入排序
- PHP数据结构之直接插入排序
- 七大排序问题之插入排序(PHP版)
- PHP之八大排序算法--插入排序(-)直接插入排序
- php插入排序
- php 插入排序
- PHP插入法排序
- PHP 插入排序代码
- php-插入排序
- 【插入排序】php实现
- PHP 插入排序
- PHP 直接插入排序
- PHP:插入排序法
- php实现插入排序
- 插入排序法 php
- 字符集转换过程
- 线性回归模型
- 关于移位操作的一点说明
- VMWare安装Linux系统之CentOS-6.6操作方法。
- Centos6.5JDK环境变量配置
- php之插入排序
- [IO]——纯文本复制
- bzoj 3107: [cqoi2013]二进制a+b 构造
- 扫描枪出现:"套接口连接错误"
- BZOJ3237: [Ahoi2013]连通图
- Android Bluetooth 框架简读 <2>
- 网络:XML 解析
- STL源码剖析读书笔记之vector
- Java并发编程系列之二十五:线程池