[php源码]PHP 基本排序算法的代码完成

  • A+
所属分类:asp免费空间
摘要

1.冒泡排序小白源码资源站思路剖析:在要排序的一组数中,对以后还未排好的序列,早年往后对相邻的两个数依次停止比拟和调剂,让较大年夜的数往下沉,较小的往上冒。即,每当两相邻的数比拟后发明它们的排序与排序请求相反时,就将它们交换。$arr=array(1,43,54,62,21,66,32,78,36,76,39);function

1. 冒泡排序
小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042

思路剖析:在要排序的一组数中,对以后还未排好的序列,早年往后对相邻的两个数依次停止比拟和调剂,让较大年夜的数往下沉,较小的往上冒。即,每当两相邻的数比拟后发明它们的排序与排序请求相反时,就将它们交换。

$arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($ar小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042rr){ $len=count($arr); //该层轮回控制 需求冒泡的轮数 for($i=1;$i$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k]; $arr[$k]=$tmp; } } } return $arr;}
2. 选择排序

思路剖析:在要排序的一组数中,选出最小的一个数与第一个位置的数交换。然后在剩下的数傍边再找最小的与第二个位置的数交换,如此轮回到倒数第二个数和最后一个数比拟为止。

function selectSort($arr) {//两重轮回完成,外层控制轮数,内层控制比拟次数$len=count($arr);for($i=0; $i
//先假定最小的值的位置$p=$i;for($j=$i+1; $j
//$arr[$p] 是以后已知的最小值if($arr[$p] > $arr[$j]) {//比拟,发明更小的,记录下最小值的位置;而且不才次比拟时采取已知的最小值停止比拟。$p=$j;}}//曾经肯定了以后的最小值的位置,保管到$p中。假设发明最小值的位置与以后假定的位置$i分歧,则位置交换便可。if($p !=$i) {$tmp=$arr[$p];$arr[$p]=$arr[$i];$arr[$i]=$tmp;}}//前去终究结果return $arr;}
3.拔出排序

思路剖析:在要排序的一组数中,假定前面的数曾经是排好依次的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好依次的。如此重复轮回,直到全部排好依次。

function insertSort($arr) {$len=count($arr);for($i=1, $i
$tmp=$arr[$i];//内层轮回控制,比拟并拔出for($j=$i-1;$j>=0;$j--) {if($tmp
//发明拔出的元素要小,交换位置,将后边的元素与前面的元故旧换$arr[$j+1]=$arr[$j];$arr[$j]=$tmp;} else {//假设碰着不需求移动的元素,因为是曾经排序好是数组,则前面的就不需求再次比拟了。break;}}}return $arr;}
4.快速排序

思路剖析:选择一个基准元素,平日选择第一个元素或许最后一个元素。经过一趟扫描,将待排序列分红两局部,一局部比基准元素小,一局部大年夜于等于基准元素。此时基准元素在其排好序后的准确位置,然后再用异样的方法递归地排序划分的两局部。

function quickSort($arr) {//先辨别可否需求继续停止$length=count($arr);if($length
return $arr;}//选择第一个元素作为基准$base_num=$arr[0];//遍历除标尺外的一切元素,依照大年夜小关系放入两个数组内//初始化两个数组$left_array=array(); //小于基准的$right_array=array(); //大年夜于基准的for($i=1; $i
if($base_num > $arr[$i]) {//放入左边数组$left_array[]=$arr[$i];} else {//放入左边$right_array[]=$arr[$i];}}//再辨别对左边和左边的数组停止相反的排序处理方法递归调用这个函数$left_array=quick_sort($left_array);$right_array=quick_sort($right_array);//吞并return array_merge($left_array, array($base_num), $right_array);}

分享当前页面将至少获得10%佣金,点此获取推广链接(规则说明)。

本站VIP源码资源永久免费下载!持续更新!www.526bt.com

加入999永久VIP会员带做项目包赚钱!教引流包搭建,社群资源共享!

新项目更新通知QQ群:767688774 站长技术交流QQ群:552760713

点击这里给我发消息

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
域名快速备案个人网站企业公司网站域名快速代理备案快速服务|网站快备
直播系统app制作 直播软件开发 手机直播 软件定制
服务器安全维护配置PHP/MySQL/FTP部署 VPS/阿里/腾讯云环境配置
PHP源码安装ASP源码HTML源码安装服务

发表评论

您必须才能发表评论!