PHP冒泡排序算法代码详细解读
<?php
$arr = array(345,4,17,6,52,16,58,69,32,8,234);
$n = count($arr);
for($i=1;$i<$n;$i++){
//其中的为什么$n-1是因为数组是从0开始计算的
//接下来是第一次内循环
for($j=$n-1;$j>=$i;$j--)
{
//如果$arr[10]<$arr[9];
//temp = $arr[9];
if($arr[$j]<$arr[$j-1]){
//$temp 暂时先把小的值放起来
$temp = $arr[$j-1];
//这个时候开始要交换位置了
$arr[$j-1] = $arr[$j];
//$arr[9] = $arr[10]的值
$arr[$j] = $temp;
//$arry[10]的值等于$arr[9]的值
//这个时候就要开始交换位置了
}
}
}
?>
相关推荐
-
PHP 冒泡排序算法的实现代码
基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面.即首先比较第1 个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数.如此下去,直至最终完成排序. 由
-
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
php三种基础算法:冒泡,插入和快速排序法 $array = array(2,3,5,6,9,8,1); //冒泡排序思想,前后元素比较 function sort_bulldle($array){ $num = count($array); for($i=0; $i<$num; $i++){ $tmp = $array[$i]; for ($j=$i-1; $j>=0; $j--) { if ($tmp < $array[$j]) { $arr[$j+1] = $arr[$j]; $a
-
PHP简单选择排序算法实例
简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换 复制代码 代码如下: <?php class Sort{ /** * 简单的选择排序 * * @param unknown_type $arr */ public function selectSort(&$arr) {
-
PHP 各种排序算法实现代码
复制代码 代码如下: <?php // 功能: PHP实现各种排序算法 // Author: windlike // Datetime: 2007-06-09 // 冒泡排序 function BubbleSort($arr){ $num = count($arr); for($i=1;$i<$num;$i++){ for($j=$num-1;$j>=$i;$j--){ if($arr[$j]<$arr[$j-1]){ $iTemp = $arr[$j-1]; $arr[$j-1]
-
php排序算法(冒泡排序,快速排序)
冒泡排序实现原理 ① 首先将所有待排序的数字放入工作列表中.② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换. ③ 重复步骤②,直至再也不能交换. 代码实现 复制代码 代码如下: <?php function bubbingSort(array $array) { for($i=0, $len=count($array)-1; $i<$len; ++$i) { for($j=$len; $j>$i;
-
PHP版本常用的排序算法汇总
//1.冒泡排序 function bubble_sort($arr){ $n = count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;;$j<$n-$i;$j++){ if($arr[$j]<$arr[$i]){ $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } } } } //2.归并排序 //merge函数将指定的两个有序数组(arr1arr2,)合并并且排序 //我们
-
php实现的常见排序算法汇总
本文汇总了常见的php排序算法,在进行算法设计的时候有不错的借鉴价值.现分享给大家供参考之用.具体如下: 一.插入排序 用文字简单的描述,比如说$arr = array(4,2,4,6,3,6,1,7,9); 这样的一组数字进行顺序排序: 那么,首先,拿数组的第二个元素和第一元素比较,假如第一个元素大于第二元素,那么就让两者位置互换,接下来,拿数组的第三个元素,分别和第二个,第一个元素比较,假如第三个元素小,那么就互换.依次类推.这就是插入排序,它的时间频度是:1+2+...+(n-1)=(n^
-
PHP排序算法的复习和总结
直接上代码吧! 复制代码 代码如下: <?php /* * 插入排序(一维数组) * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序:直到待排序的数据元素全部插入完成为止. */ function insertSort($arr){ if(!is_array($arr) || count($arr)==0){ return $arr; } $count = count($arr); for($i=1; $i<$count; $i++){ if(isset(
-
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 复制代码 代码如下: //冒泡排序(数组排序)function bubble_sort($array) {$count = count($array);if ($count <= 0)return false;for($i=0; $i<$count; $i++){for($j=$count-1; $j>$i; $j–){if ($array[$j] < $array[$j-1]){$tmp =
-
PHP四种基本排序算法示例
许多人都说算法是程序的核心,算法的好坏决定了程序的质量.作为一个初级phper,虽然很少接触到算法方面的东西.但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具.这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路. 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序
-
排序算法之PHP版快速排序、冒泡排序
一.快速排序 1.简介快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来.快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists).2.步骤从数列中挑出一个元素,称为 "基准&quo
-
PHP 快速排序算法详解
概念 这里借用百度百科的一张图来,非常形象: 快速排序算法是对冒泡算法的一个优化.他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来.这里用到了递归的思想. PHP实现 复制代码 代码如下: /* 快速排序 */ function quickSort($array) {
随机推荐
- CMD下读取/修改/删除注册表项的方法
- vue.js从安装到搭建过程详解
- 如何在Angular.JS中接收并下载PDF
- 解析Tomcat 6、7在EL表达式解析时存在的一个Bug
- 浅析hasOwnProperty方法的应用
- 纯js实现背景图片切换效果代码
- asp.net画曲线图(折线图)代码 详细注释
- jquery禁止输入数字以外的字符的示例(纯数字验证码)
- c#中抽象类和接口的详细介绍
- Android 中Fragment与Activity通讯的详解
- 用css动态生成闪字的代码
- 在阿里云Centos下如何安装Nginx
- Android数据库操作工具类分享
- 全面了解javascript三元运算符
- Java8中使用流方式查询数据库的方法
- 微信开发之使用java获取签名signature
- C基础 mariadb处理的简单实例
- python基础教程之循环介绍
- Asp.Net常用函数
- C#应用BindingSource实现数据同步的方法