【黑马程序员】php四种基础算法:冒泡,选择,插入和快速....docx 立即下载
2025-08-26
约7.1千字
约12页
0
17KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

【黑马程序员】php四种基础算法:冒泡,选择,插入和快速....docx

【黑马程序员】php四种基础算法:冒泡,选择,插入和快速....docx

预览

免费试读已结束,剩余 7 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【黑马程序员】php四种基础算法:冒泡,选择,插入和快速...

第一篇:【黑马程序员】php四种基础算法:冒泡,选择,插入和快速...【黑马程序员】php四种基础算法:冒泡,选择,插入和快速...许多人都说算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的。下面是我按自己的理解,将四个方法分析一遍。需求:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到的顺序进行排序。$arr(1,43,54,62,21,66,32,78,36,76,39);1.冒泡排序法*思路分析:法如其名,就是像冒泡一样,每次从数组当中冒一个最大的数出来。*比如:2,4,1//第一次冒出的泡是4*2,1,4//第二次冒出的泡是2*1,2,4//最后就变成这样01$arr=array(1,43,54,62,21,66,32,78,36,76,39);02functiongetpao($arr)03{04$len=count($arr);05//设置一个空数组用来接收冒出来的泡06//该层循环控制需要冒泡的轮数07for($i=1;$i$arr[$k+1])12{13$tmp=$arr[$k+1];14$arr[$k+1]=$arr[$k];15$arr[$k]=$tmp;16}黑马程序员济南中心编著}18}19return$arr;20}2.选择排序法:选择排序法思路:每次选择一个相应的元素,然后将其放到指定的位置01functionselect_sort($arr){02//实现思路双重循环完成,外层控制轮数,当前的最小值。内层控制的比较次数03//$i当前最小值的位置,需要参与比较的元素04for($i=0,$len=count($arr);$i$arr[$j]){11//比较,发现更小的,记录下最小值的位置;并且在下次比较时,12//应该采用已知的最小值进行比较。13$p=$j;14}15}16//已经确定了当前的最小值的位置,保存到$p中。//如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可18if($p!=$i){19$tmp=$arr[$p];20$arr[$p]=$arr[$i];21$arr[$i]=$tmp;22}23}24//返回最终结果25return$arr;26}3.插入排序法黑马程序员济南中心编著插入排序法思路:将要排序的元素插入到已经假定排序号的数组的指定位置。01functioninsert_sort($arr){02//区分哪部分是已经排序好的03//哪部分是没有排序的04//找到其中一个需要排序的元素05//这个元素就是从第二个元素开始,到最后一个元素都是这个需要排序的元素06//利用循环就可以标志出来07//i循环控制每次需要插入的元素,一旦需要插入的元素控制好了,08//间接已经将数组分成了2部分,下标小于当前的(左边的),是排序好的序列09for($i=1,$len=count($arr);$i=0;$j--){14//$arr[$i];//需要插入的元素;$arr[$j];//需要比较的元素15if($tmp4.快速排序法01functionquick_sort($arr){02//先判断是否需要继续进行03$length=count($arr);04if($length黑马程序员济南中心编著06}07//如果没有返回,说明数组内的元素个数多余1个,需要排序08//选择一个标尺09//选择第一个元素10$base_num=$arr[0];11//遍历除了标尺外的所有元素,按照大小关系放入两个数组内12//初始化两个数组$left_array=array();//小于标尺的14$right_array=array();//大于标尺的15for($i=1;$i$arr[$i]){17//放入左边数组$left_array[]=$arr[$i];19}else{20//放入右边$right_array[]=$arr[$i];22}23}24//再分别对左边和右边的数组进行相同的排序处理方式25//递归调用这个函数,并记录结果$left_array=quick_sort($left_array);27$right_array=quick_sort($right_array);28//合并左边标尺右边returnarray_merge($left_array,array($base_num),$right_array);30}黑马程序员济南中心编著第二篇:黑马程序员:PHP零基础同学如何学习零基础大学生们该如何学习php?我们都知道,php语
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

【黑马程序员】php四种基础算法:冒泡,选择,插入和快速...

文档大小:17KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用