- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组的排序
这里我们介绍一些常用的排序方法, 排序是一个程序员基本功, 所谓排序就是对一组数据,按照某个顺序排列的过程。
排序分两大类:
内部排序
(1) 交换式排序法
冒泡法
基本思想:
案例说明:
?php
//简单的
$arr=array(0,5,-1);
//这是一个中间变量
$temp=0;
//我们要把数组,从小到大
//外层循环
for($i=0;$icount($arr)-1;$i++){
for($j=0;$jcount($arr)-1-$i;$j++){
//说明前面的数比后面的数大,就要交换
if($arr[$j]$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
//输出
print_r($arr);
?
为了更好使用排序,我们将其封装成一个函数:代码如下 :
?php
//简单的
//现在我们把冒泡法封装成函数,利用以后使用
function bubbleSort($myarr){
//这是一个中间变量
$temp=0;
//我们要把数组,从小到大
//外层循环
for($i=0;$icount($myarr)-1;$i++){
for($j=0;$jcount($myarr)-1-$i;$j++){
//说明前面的数比后面的数大,就要交换
if($myarr[$j]$myarr[$j+1]){
$temp=$myarr[$j];
$myarr[$j]=$myarr[$j+1];
$myarr[$j+1]=$temp;
}
}
}
echo br/函数中的myarr数组;
print_r($myarr);
}
$arr=array(0,5,-1);
//使用函数去排序
bubbleSort($arr);
//输出
print_r($arr);
?
? 从上面的案例我们可以看出
* 数组默认传递的是值,不是地址
快速排序法
快速排序法,我们就介绍了一个思想:
选择排序法
选择排序法的案例:
举例说明:
function selectSort($arr){
$temp=0;
for($i=0;$icount($arr)-1;$i++){
//假设 $i就是最小的数
$minVal=$arr[$i];
//记录我认为的最小数的下标
$minIndex=$i;
for($j=$i+1;$jcount($arr);$j++){
//说明我们认为的最小值,不是最小
if($minVal$arr[$j]){
$minVal=$arr[$j];
$minIndex=$j;
}
}
//最后交换
$temp=$arr[$i];
$arr[$i]=$arr[$minIndex];
$arr[$minIndex]=$temp;
}
}
自己分析流程.
插入排序法
排序思想:
//插入排序法(小-大)
function insertSort($arr){
//先默认下标为0 这个数已经是有序
//1. 知道思想-看懂代码-写(灵活)
for($i=1;$icount($arr);$i++){
//$insertVal是准备插入的数
$insertVal=$arr[$i];
//准备先和$insertIndex比较
$insertIndex=$i-1;
//如果这个条件满足,说明,我们还没有找到适当的位置
while($insertIndex=0$insertVal$arr[$insertIndex]){
//同时把数后移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}
//插入(这时就给$insertVal找到适当位置)
$arr[$insertIndex+1]=$insertVal;
}
}
从效率上看.
冒泡法 选择排序法 插
您可能关注的文档
最近下载
- 胃间质瘤ppt护理查房.pptx VIP
- 胃间质瘤护理查房.pptx VIP
- 拓尔微产品规格书TMI3493.pdf VIP
- 最新人教版二年级英语上册(新起点)电子课本课件【全册】.pptx VIP
- 初中历史人教版八年级上册全套教案.pdf
- 七年级生物上册 1.1.1生物的特征教学设计 (新版)新人教版.docx
- 【真题】七年级下学期期末数学试题(含解析)陕西省西安市铁一中学2024-2025学年.docx VIP
- CCEA GC 11-2019 工程造价咨询企业服务清单.docx VIP
- 《数控机床结构与维护》全套PPT课件.pptx
- 烧结球团-11球团工艺过程检测与产品质量检验.ppt VIP
文档评论(0)