PHP学习笔记十二【数组排序】
<?php
$arr=array(0,5,-1);
$temp=0;
for($i=0;$i<count($arr)-1;$i++)
{
for($j=0;$j<count($arr)-1-$i;$j++)
{
if($arr[$j]>$arr[$j+1])
{
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
foreach($arr as $val)
{
echo "<br>".$val;
}
selectSort($arr);
print_r($arr);
InsertSort($arr);
print_r($arr); //选择排序
function selectSort(&$arr)
{
$temp=0;
for($i=0;$i<=count($arr)-1;$i++)
{
//假设$i就是最小的数
$minval=$arr[$i];
//记录我认为的最小数的下标
$minIndex=$i;
for($j=$i+1;$j<count($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这个数已经有序
for($i=0;$i<count($arr);$i++)
{
//$insertVal是准备插入的数
$insertVal=$arr[$i];
//准备先和$insertIndex比较
$inserIndex=$i-1;
//如果这个条件满足,说明,我们还没有找到合适的位置
while($inserIndex>0&&$insertVal<$arr[$inserIndex])
{
//同时把数后移
$arr[$inserIndex+1]=$arr[$inserIndex];
$inserIndex--; }
//插入(这时就给$insertVal找到适当的位置)
$arr[$inserIndex+1]=$insertVal;
}
}
?>
PHP学习笔记十二【数组排序】的更多相关文章
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- java jvm学习笔记十二(访问控制器的栈校验机制)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...
- (C/C++学习笔记) 十二. 指针
十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- ROS学习笔记十二:使用gazebo在ROS中仿真
想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...
- JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)
1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...
- MySQL学习笔记十二:数据备份与恢复
数据备份 1.物理备份与逻辑备份 物理备份 物理备份就是将数据库的数据文件,配置文件,日志文件等复制一份到其他路径上,这种备份速度一般较快,因为只有I/O操作.进行物理备份时,一般都需要关闭mysql ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
随机推荐
- android——ImageLoader添加缓存
//给图片加入到缓存中. DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisc( ...
- 关于document.write()重写页面
今天碰到了一个以前没注意的问题即:document.write(),在此拿来分享! document.write是最基本的JavaScript命令之一,这个命令简单地打印指定的文本内容到页面上(注意是 ...
- Margin是什么?
Margin是什么 CSS 边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距.——W3School 边界,元素周围生 ...
- jquery怎么获取URL的参数
function request(paras) { var url = location.href; var paraString = ur ...
- AJAX 控件集之TextBoxWatermark(水印文本框)控件
功能: 可以让TextBox控件初始化的时候拥有水印文字.属性: TargetControlID :要使用具有水印效果的TextBox控件ID. WatermarkCssCla ...
- linux中如何使用微软鼠标的第4、5键
虽说使用linux的 人大都对微软没什么好感,但不能否认微软确实也出了不少好东西呀,比如微软鼠标(IE系列) icon_smile.gif IE 2.0和以上版本都有5个按钮,除了正常的左中右外,两侧 ...
- Android IntentService 与Alarm开启任务关闭任务
1:MyService public class MyService extends IntentService{ AlarmManager alarmManager = null; PendingI ...
- QObject就有eventFilter,功能很强(随心所欲的进行处理,比如用来QLineEdit分词)
相信大家都用过词典吧!因为英语不太好...O(∩_∩)O~,所以经常进行划词翻译! 简述 实现 效果 源码 更多参考 实现 原理:鼠标移至某单词之上,获取鼠标位置,然后在对应位置进行取词,翻译! 基于 ...
- 【转】 怎么刷入BOOT.IMG(刷机后开机卡在第一屏的童鞋请注意)-------不错不错
原文网址:http://bbs.gfan.com/android-3440837-1-1.html 之前呢,有好多机油问我关于刷机卡屏的问题,我解答了好多,但一一解答太费事了,在这里给大家发个贴吧.其 ...
- Seletion Sort
referrence: GeeksforGeeks The selection sort algorithm sorts an array by repeatedly finding the mini ...