用php实现的各种排序算法总结
来源:互联网 发布:淘宝购物礼品盒 编辑:程序博客网 时间:2024/05/17 06:39
用PHP实现的各种排序算法,冒泡排序,交换排序,选择法排序,插入法排序,快速排序,根据实际情况可选择不同的排序算法。效率也有所不同。
重要的还是先理解了算法,实现起来才水到渠成。
冒泡排序:
<?phpfunction BubbleSort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ for($j=$num-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $iTemp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $iTemp; } } } return $arr;}?>
交换法排序:
<?php function ExchangeSort($arr){ $num = count($arr); for($i=0;$i<$num-1;$i++){ for($j=$i+1;$j<$num;$j++){ if($arr[$j]<$arr[$i]){ $iTemp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $iTemp; } } } return $arr; } ?>
选择法排序:
<?php function SelectSort($arr){ $num = count($arr); for($i=0;$i<$num-1;$i++){ $iTemp = $arr[$i]; $iPos = $i; for($j=$i+1;$j<$num;$j++){ if($arr[$j]<$iTemp){ $iTemp = $arr[$j]; $iPos = $j; } } $arr[$iPos] = $arr[$i]; $arr[$i] = $iTemp; } return $arr; } ?>
插入法排序:
<?php function InsertSort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ $iTemp = $arr[$i]; $iPos = $i-1; while(($iPos>=0) && ($iTemp<$arr[$iPos])){ $arr[$iPos+1] = $arr[$iPos]; $iPos--; } $arr[$iPos+1] = $iTemp; } return $arr; } ?>
快速排序 :
<?php function QuickSort($arr){ $num = count($arr); $l=$r=0; for($i=1;$i<$num;$i++){ if($arr[$i] < $arr[0]){ $left[] = $arr[$i]; $l++; }else{ $right[] = $arr[$i]; $r++; } } if($l > 1){ $left = QuickSort($left); } $new_arr = $left; $new_arr[] = $arr[0]; if($r > 1){ $right = QuickSort($right); } for($i=0;$i<$r;$i++){ $new_arr[] = $right[$i]; } return $new_arr; } $arr = array(7,1,6,5,2); $arr_new = QuickSort($arr); ?>
阅读全文
1 0
- 用php实现的各种排序算法总结
- 用php实现的各种排序算法总结
- 各种排序算法的总结和实现。
- PHP实现各种排序算法
- PHP实现各种排序算法
- PHP实现各种排序算法
- 各种排序算法的总结
- 各种排序算法的总结
- 各种排序算法的总结
- <数据结构>各种排序算法的实现与总结(一)
- 各种排序算法的实现,总结与比较
- PHP实现排序算法总结
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 【LeetCode】119. Pascal's Triangle II
- android activity自定义抽象父类
- Android 实现音乐播放
- json文件转为plist文件输出
- python删除txt文本中的空格
- 用php实现的各种排序算法总结
- 深入Java核心
- BZOJ 1027-合金(凸包+最小环)
- Android ContentResolver 获取手机联系人
- Java的反射
- android studio配置sdk和gradle中的一些问题
- React Native入门(四)之使用Flexbox布局
- Python3之列表list使用
- Ubuntu下使用samba