冒个泡泡
呃(⊙o⊙)…,做ERP的软件公司派了人来在做实施初始的一些工作,老夫闲的蛋疼,于是突然想到,冒个泡泡玩,想当年,老夫的二级C就倒在最后一道冒泡上,惭愧,没脸见人了,今天得把以前掉在地上的面子拾起来。最近看了二三十章PHP100的视频教程,不得不说张恩民同志是一个好同志,讲的课程通俗易懂,就老夫这左耳进右耳出的记性,也还能留下点什么。
先说说冒泡算法,最简单的排序算法(最简单的老夫都挂了,⊙﹏⊙b汗),把所有要排序的元素看作是竖着排列的气泡,小的较轻,就要上浮,首先从最底部开始扫描,也就是从最后开始,两两相比较,前面的小就不作改变,前面的大就互相交换,一直从尾部比较到头部,第一遍比较完,最小的数就排到了第一位,然后开始第二遍比较,也还是从尾部开始比较,第二遍比较完,第二小的数就排到第二了,最后第I遍的时候,第I位置的那个数就不用比较了,因为经过前面I-1轮的比较,这时候顺序已经是正常的了,也就是说10个数,得比较9轮,就这么两两比较,看来冒泡算法的效率是比较低的。
老夫写的简单冒泡排序:
http://dagai.net/wp-content/bubblesort.php
随机生成N个数,然后对这些书进行冒泡排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php if($_POST[number]) { $num=$_POST[number]; echo "共随机生成".$num."个随机数:"; for($n=0;$n<$num;$n++) { $arr[$n]=rand(); echo $arr[$n]." "; } echo "<br>开始冒泡排序<br>"; for ($i=0;$i<$num;$i++) { #第一趟比较开始 for ($j=$num-2;$j>=$i;$j--) #N个数的数组,数组序列就从0到N-1,那就从第N-2序列和第N-1序列比起 { if($arr[$j+1]<$arr[$j]) #如果第N个数比第N-1个数小 { echo "<br>第".($i+1)."趟第".($j+2)."个数"; $tmp = $arr[$j+1]; #就把第N个数赋给一个临时变量 $arr[$j+1]=$arr[$j]; #然后把第N-1序列的数赋给第N个序列 $arr[$j]=$tmp; #再把刚才赋给临时变量的N序列的数赋给第N-1列,实现了序列交换 echo $arr[$j]."冒出提到第".($j+1)."位<br>"; print_r($arr); } } } } ?> <form action="" method="post"> <lable>生成随机数</label> <input type="text" name="number" size="1" maxlength="1"/><label>个</label> <input type="submit" name="submit" value="submit"/> </form> |
上一篇: 买服务器的一些破事
下一篇: Vistapanel系列免费空间
2011/10/24 11:03:37
哈哈,我也不会写,学学吧,听说lamp兄弟连的教程不错,php100的也很好
2011/10/24 09:36:53
想学PHP了,虽然做了个网站,一直是改改模板,写程序还是白痴,不知道能不能坚持!
2010/12/30 13:16:15
PHP,Perl,shell感觉语法相似!!!
2010/03/23 08:02:43
哈哈,我数学也不是一般的烂,只是现在有那么一点喜欢折腾。
你在我这里评论的时候出现404没?我测倒是没出现
2010/03/23 00:25:34
为什么写程序都搞的跟做数学题一样呢?也许是我数学太烂了……
你这404的问题解决了吗?
我那基本肯定是Akismet的问题了,现在禁用了,挺好的。
2010/03/19 11:01:43
奇怪,我测试没有出现404呢
2010/03/19 09:56:05
估计遇到了跟秦大少一样的问题了,改天向他请教一下
2010/03/19 09:24:24
排序的常用方法,记得以前在学校参加ACM大赛的时候常用到,可是现在几乎不记得了
——提交评论出现404页面?奇怪了?