下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——PHP四种基本排序算法算法是程序的核心,算法的好坏抉择了程序的质量。下面我为大家介绍了PHP四种根本排序算法,梦想能帮到大家!
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的依次举行排序。
$arr1,43,54,62,21,66,32,78,36,76,39;
1.冒泡排序
思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次举行对比和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数对比后察觉它们的排序与排序要求相反时,就将它们互换。
代码实现:
$arr=array1,43,54,62,21,66,32,78,36,76,39;
functionbubbleSort$arr
$len=count$arr;
//该层循环操纵需要冒泡的轮数
for$i=1;$i$len;$i++
//该层循环用来操纵每轮冒出一个数需要对比的次数
for$k=0;$k$len-$i;$k++
if$arr[$k]$arr[$k+1]
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
$arr[$k]=$tmp;
return$arr;
2.选择排序
思路分析:在要排序的一组数中,选出最小的一个数与第一个位置的数交换。然后在剩下的数当中再找最小的与其次个位置的数交换,如此循环到倒数其次个数和结果一个数对比为止。
代码实现:
functionselectSort$arr
//双重循环完成,外层操纵轮数,内层操纵对比次数
$len=count$arr;
for$i=0;$i$len-1;$i++
//先假设最小的值的位置
$p=$i;
for$j=$i+1;$j$len;$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个数也是排好依次的。如此反复循环,直到全部排好依次。
代码实现:
functionSort$arr
$len=count$arr;
for$i=1,$i$len;$i++
$tmp=$arr[$i];
//内层循环操纵,对比并插入
for$j=$i-1;$j=0;$j--
if$tmp$arr[$j]
//察觉插入的元素要小,交换位置,将后边的元素与前面的元素互换
$arr[$j+1]=$arr[$j];
$arr[$j]=$tmp;
else
//假设碰见不需要移动的元素,由于是已经排序好是数组,那么前面的就不需要再次对比了。
break;
return$arr;
4.快速排序
思路分析:选择一个基准元素,通常选择第一个元素或者结果一个元素。通过一趟扫描,将待排序列分成两片面,一片面比基准元素小,一片面大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两片面。
代码实现:
functionquickSort$arr
//先判断是否需要持续举行
$length=count$arr;
if$length=1
return$arr;
//选择第一个元素作为基准
$base_num=$arr[0];
//遍历除了标尺外的全体元素,按照大小关系放入两个数组内
//初始化两个数组
$left_array=array;//小于基准的
$right_array=array;//大于基准的
for$i=1;$i$length;$i++
if$base_num$arr[$i]
//放入左边数组
$left_array[]=$arr[$i];
else
//放入右边
$right_array[]=$arr[$i];
//再分别对左边和右边的数组举行一致的排序处理方式递归调用这个函数
$left_array=quick_sort$left_array;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年四川眉山天府新区选调事业单位人员4人笔试参考题库及答案解析
- 2026山东第一医科大学附属肿瘤医院第二批招聘笔试备考题库及答案解析
- 2026年开封文化艺术职业学院单招职业适应性测试模拟测试卷及答案1套
- 2026年安徽新闻出版职业技术学院单招职业倾向性考试题库及答案1套
- 2026年安徽粮食工程职业学院单招职业倾向性考试题库附答案
- 2026年湖南生物机电职业技术学院单招职业倾向性考试模拟测试卷附答案
- 2026广东广外附属科学城实验学校小学语文教师招聘2人笔试模拟试题及答案解析
- 2025昌平区企事业单位招录就业见习人员80人(公共基础知识)综合能力测试题附答案
- 2026浙江宁波东方海纳人力资源服务有限公司管道工岗位招聘2人(杭州湾新区自来水公司)笔试参考题库及答案解析
- 2025年河北省卫生健康委员会河北省康复医院公开招聘工作人员12名(公共基础知识)综合能力测试题附答案
- 2025-2026学年(通*用版)高二上学期期末测试【英语】试卷(含听力音频、答案)
- 翻车机工操作技能水平考核试卷含答案
- 2025年中职食品雕刻(食品雕刻技术)试题及答案
- 2026青海西宁市湟源县水务发展(集团)有限责任公司招聘8人考试参考试题及答案解析
- 舞台灯光音响控制系统及视频显示系统安装施工方案
- 2025年大学(运动康复)运动康复治疗技术测试试题及答案
- (2025年)昆山杜克大学ai面试真题附答案
- 污水处理设施运维服务投标方案(技术标)
- 旅游接待业 习题及答案汇总 重大 第1-10章 题库
- 智慧金库项目需求书
- DB41T 2397-2023 机关食堂反食品浪费管理规范
评论
0/150
提交评论