PHP的简易冒泡法代码分享

 更新时间:2012年08月28日 23:38:36   作者:  
基础的东西,感觉代码还不够简洁,希望高手指导修改,脚本之家特为大家多准备了几个,方便测试学习
很基础的东西,感觉代码还不够简洁,希望高手指导修改
复制代码 代码如下:

<?php
function BubbleSort($str){
for($i=0;$i<count($str);$i++){//从数组末尾取一个值;
for ($k=count($str)-2;$k>=$i;$k--){//将这个值向前冒泡;
if($str[$k+1]<$str[$k]){ //将小于号改为大于号,就是降序排列;
$tmp=$str[$k+1];
$str[$k+1]=$str[$k];
$str[$k]=$tmp;
}
}
}
return $str;
}
//以下是测试
$str=array(5,8,2,6,10,0,3,12,11);
print_r(BubbleSort($str));
?>

php 冒泡排序2
基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
  由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
  用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复 9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的
值依次为1,2,...10-i。
复制代码 代码如下:

<?php
function asc($a)
{
for($i=0;$i<count($a)-1;$i++)
{
for($j=0;$j<count($a)-1;$j++)
{
if($a[$j]>$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$a = array(9,8,17,6,26,4,33,2,1);
print_r(asc($a));
?>
<br />
<?php
function desc($a)
{
$c=array();
for($i=count($a)-1;$i>0;$i--)
{
for($j=0;$j<count($a)-1;$j++)
{
if($a[$j]<$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$arr=array(33,24,56,55,59);
desc($arr);
?>&nbsp;

PHP冒泡排序法演示
以前面试的时候考官出的笔试题,觉得比较XX,写程序应该是在计算机上面,而不是在笔头上。
PHP程序文件sort_bubble_up.php
复制代码 代码如下:

<html>
<head><title>冒泡排序法演示</title><head>
<link rel="stylesheet" href="sort.css">
<body>
<h1>冒泡排序法演示</h1>
<table cellpadding="5" cellspacing="1" border="0" align="center">
<?php
//随机生成数组
$arr=array();
echo '<tr><td colspan="10" class="title">初始值</td></tr>';
echo '<tr>';
for($i=0;$i<10;$i++){
$arr[$i]=rand();
echo "<td>\$arr[$i]={$arr[$i]}</td>";
}
//进行冒泡法排序
for($i=9;$i>0;$i--){
echo '<tr><td colspan="10" class="title">第'.(10-$i).'次</td></tr>';
for($j=0;$j<$i;$j++){
if($arr[$j]<$arr[$j+1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
echo '<tr>';
for($k=0;$k<10;$k++){
switch($k){
case $j : echo '<td class="base">'; break;
case $j+1 : echo '<td class="light">'; break;
default : echo '<td>';
}
echo "\$arr[$k]={$arr[$k]}</td>";
}
echo '</tr>';
}
}
//显示排序结果
echo '<tr><td colspan="10" class="title">结果</td></tr>';
echo '<tr>';
for($i=0;$i<10;$i++){
echo "<td>\$arr[$i]={$arr[$i]}</td>";
}
echo '</tr>';
?>
</table>
</body></html>

样式表文件sort.css
复制代码 代码如下:

h1{text-align: center; color: blue;}
table{font-size: 12px; font-family: arial; background-color: black; text-align: center;}
td{background-color: white;}
.base{background-color: #0FF;}
.light{background-color: #0DD;}
.title{background-color: #3FF; text-align: center;}

相关文章

  • 使用Memcached缓存实现Session共享技巧

    使用Memcached缓存实现Session共享技巧

    这篇文章主要为大家介绍了使用Memcached缓存实现Session共享技巧,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • php基于DOMDocument操作页面元素实例

    php基于DOMDocument操作页面元素实例

    这篇文章主要介绍了php基于DOMDocument操作页面元素,结合实例形式分析了php使用DOMDocument进行页面元素获取与属性修改的相关操作技巧,需要的朋友可以参考下
    2023-06-06
  • PHP中创建空文件的代码[file_put_contents vs touch]

    PHP中创建空文件的代码[file_put_contents vs touch]

    php中用file_put_contents比touch快,大约两倍左右。
    2012-01-01
  • php5中类的学习

    php5中类的学习

    类的结构: 类的内部能可能有三种东西,就是常量(constant),属性(property)和方法(method),功能可以理解成类外部的常量,变量和函数。
    2008-03-03
  • php提取数字拼接数组的具体操作

    php提取数字拼接数组的具体操作

    在本篇文章里小编个大家整理了一篇关于php提取数字拼接数组的具体操作方法,有需要的朋友们可以跟着学习下。
    2021-08-08
  • PHP实现的DES加密解密封装类完整实例

    PHP实现的DES加密解密封装类完整实例

    这篇文章主要介绍了PHP实现的DES加密解密封装类,结合完整实例形式分析了php DES加密解密封装类的定义与使用技巧,需要的朋友可以参考下
    2017-04-04
  • php简单静态页生成过程

    php简单静态页生成过程

    一直用smarty的cache,但感觉还是要自己做一个,才有感觉。网上有很多牛人的功能比较完备,打算先自己搞简单的再慢慢丰满。这两天做了一个比较简单的,在hi.baidu.net/alex_wang58记录一下。
    2008-03-03
  • php获取客户端电脑屏幕参数的方法

    php获取客户端电脑屏幕参数的方法

    这篇文章主要介绍了php获取客户端电脑屏幕参数的方法,可获得宽度,高度,分辨率等参数,主要使用了js的方法获取客户端电脑屏幕的参数再利用Ajax返回给服务器端,进而实现获取客户端电脑屏幕参数的功能,需要的朋友可以参考下
    2015-01-01
  • PHP程序员编程注意事项

    PHP程序员编程注意事项

    PHP程序员最易犯10种错误所以下面的好多都是我们需要注意的地方PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大多数和安全相关。看看你犯了几种
    2008-04-04
  • PHP数据加密方式梳理介绍

    PHP数据加密方式梳理介绍

    数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量 交易和传输的大量数据。如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能
    2022-09-09

最新评论