php 冒泡排序原理
$start = microtime(true);
$popArr = array(6,3,23,1,5,100,399,99,66);
echo '6,3,23,1,5,100,399,99,66';
$len = count($popArr);
for ($j=0; $j<$len; $j++)
{
for ($i=$len-1; $i>$j; $i--)
{
if ($popArr[$i] < $popArr[$i-1])
{
$x = $popArr[$i];
$popArr[$i] = $popArr[$i-1];
$popArr[$i-1] = $x;
}
}
}
/*
j=0 i=8 99和66互换了 array(6,3,23,1,5,100,399,66,99);
i=7 399和66互换了 array(6,3,23,1,5,100,66,399,99);
i=6 100和66互换了 array(6,3,23,1,5,66,100,399,99);
i=5 没变化
i=4 没变化
i=3 23和1互换了 array(6,3,1,23,5,66,100,399,99);
i=2 3和1互换了 array(6,1,3,23,5,66,100,399,99);
i=1 6和1互换了 array(1,6,3,23,5,66,100,399,99);
j=1 i=8 399和99互换了 array(1,6,3,23,5,66,100,99,399);
i=7 100和99互换了 array(1,6,3,23,5,66,99,100,399);
i=6 没变化 array(1,6,3,23,5,66,99,100,399);
i=5 没变化 array(1,6,3,23,5,66,99,100,399);
i=4 23和5互换了 array(1,6,3,5,23,66,99,100,399);
i=3 没变化 array(1,6,3,5,23,66,99,100,399);
i=2 6和3互换了 array(1,3,6,5,23,66,99,100,399);
j=2 i=8 没变化 array(1,3,6,5,23,66,99,100,399);
i=7 没变化 array(1,3,6,5,23,66,99,100,399);
i=6 没变化 array(1,3,6,5,23,66,99,100,399);
i=5 没变化 array(1,3,6,5,23,66,99,100,399);
i=4 没变化 array(1,3,6,5,23,66,99,100,399);
i=3 6和5互换了 array(1,3,5,6,23,66,99,100,399);
j=3 i=8 没变化 array(1,3,5,6,23,66,99,100,399);
i=7 没变化 array(1,3,5,6,23,66,99,100,399);
i=6 没变化 array(1,3,5,6,23,66,99,100,399);
i=5 没变化 array(1,3,5,6,23,66,99,100,399);
i=4 没变化 array(1,3,5,6,23,66,99,100,399);
j=4 i=8 没变化 array(1,3,5,6,23,66,99,100,399);
i=7 没变化 array(1,3,5,6,23,66,99,100,399);
i=6 没变化 array(1,3,5,6,23,66,99,100,399);
i=5 没变化 array(1,3,5,6,23,66,99,100,399);
j=5 i=8 没变化 array(1,3,5,6,23,66,99,100,399);
i=7 没变化 array(1,3,5,6,23,66,99,100,399);
i=6 没变化 array(1,3,5,6,23,66,99,100,399);
j=6 i=8 没变化 array(1,3,5,6,23,66,99,100,399);
i=7 没变化 array(1,3,5,6,23,66,99,100,399);
j=7 i=8 没变化 array(1,3,5,6,23,66,99,100,399);
*/
echo '<pre>';
print_r($popArr);
echo microtime(true) - $start;
die;
php 冒泡排序原理的更多相关文章
- go语言基础之冒泡排序原理
1.冒泡排序原理 示例: package main //必须有个main包 import "fmt" import "math/rand" import &qu ...
- 冒泡排序原理(BubbleSorted)
//简单的冒泡排序public class BubbleMath { public static void main(String[] args) { //分清楚数组的头和尾,开始为尾,最后为头,因为 ...
- Java_冒泡排序_原理及优化
冒泡排序及其优化 一.原理及优化原理 1.原理讲解 冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较, ...
- 冒泡排序法原理讲解及PHP代码示例
冒泡排序原理 冒泡排序对一个数组里的数字进行排序,把数组里两个相邻的数比较大小,将值小的数放在前面,把大的数往后面放,当然这种排序是升序,即从小到大.举例说明$array = [64, 56, 31, ...
- Python算法-冒泡排序
#coding:utf-8 """ 冒泡排序 原理:依次重复访问每一个需要排序的元素,每次比较相邻的两个元素是否符合顺序,若不符合就交换,直到没有不符合顺序的为止. &q ...
- 【Python全栈笔记】07 [模块二] 20 Oct 冒泡排序
给出一个列表,进行冒泡排序 原理算法: li = [52, 37, 23, 11, 3, 1, ] print(li) # 每次循环,进行一次排序,列表内数字两两比较,最大的数字排到最末尾 # 一共循 ...
- python 算法 -- 冒泡排序
python 排序算法 -- 冒泡排序 原理 从数组的底部开始, 两两比较大小, 小的在下,大的在上, 依次类推直到顶部. 当整个数组比较完毕, 则最上面的一定是最大值(此即冒泡的由来); 当第一轮比 ...
- 晓莲说-何不原创:java 实现二维数组冒泡排序
新手从业路-为自己回顾知识的同时,也希望和大家分享经验: 话不多说,上代码 public class 冒泡排序 { /** * @param admin * @2017.12.4 ...
- [Java]数组排序-选择排序 冒泡排序 插入排序
1 选择排序 原理:a 将数组中的每个元素,与第一个元素比较 如果这个元素小于第一个元素, 就将这个 两个元素交换. b 每轮使用a的规则, 可以选择出 ...
随机推荐
- Objective-C 的动态提示和技巧
过去的几年中涌现了大量的Objective-C开发者.有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语 ...
- bootstrap input 加了 disabled 后台竟然接受不到值
下午做了一个input 值需要不可改变.在input属性中加入了 disabled .在后台接受 var_dump($_POST); 竟然看不到值. <input type="t ...
- vue-router实现页面的整体跳转
直接看效果图: 代码地址:https://github.com/YalongYan/vue-router-jump
- shell遍历文件目录,监听文件变化,拼接字符串
最近利用业余时间学习了shell 并做了个例子 实现的功能是 : 监听demo文件夹下的文件,只要新增了 .js的文件就把对应的文件名重组,拼接, 最后写入到demo.js里面. 文件结构如下 : ...
- python在windows下安装paramiko模块和安装pycrypto模块(3步搞定)(转)
Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,我们需要先安装pycr ...
- POJ3094 Sky Code(莫比乌斯反演)
POJ3094 Sky Code(莫比乌斯反演) Sky Code 题意 给你\(n\le 10^5\)个数,这些数\(\le 10^5\),问这些这些数组成的互不相同的无序四元组(a,b,c,d)使 ...
- [ZJOI2006]三色二叉树
[ZJOI2006]三色二叉树 BZOJ luogu 分3种颜色讨论转移一下 #include<bits/stdc++.h> using namespace std; const int ...
- Virtualbox报错------> VirtualBox虚拟机下鼠标不正常的解决方法
在Virtualbox虚拟机下,突然发现鼠标使用不正常.出现2个鼠标,一个是Ubuntu主机下面的鼠标,一个是Window7下的鼠标,但是Win7下的鼠标不可以看得到,但是点击鼠标左右键可以看到有反应 ...
- Android TextView文字过多时通过滚动条显示多余内容
方法一: TextView文字过多,显示不全,怎么办?我们可以为Textview添加滚动条. <TextView android:id="@+id/bus_detail_content ...
- Linux:分区
Linux:分区 分区表 磁盘分区表主要有两种格式,一种是限制较多的 MBR 分区表,一种是较新且限制较少的 GPT 分区表. MBR MBR 中,第一个扇区最重要,里面有主要开机记录(Master ...