因胸联盟 发表于 2015-2-4 00:31:12

PHP编程:heapsort(PHP)

终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。   实习堆排序的一个法式 <?
//堆排序使用
class heapsort
{
    var $a;
    function setarray($a)//获得数组
      {
      $this->a=$a;
      }
    function runvalue($b,$c)//$a 代表数组,$b代表排序堆,$c代表停止点,
      {
      while($b<$c)
          {
            $h1=2*$b;
            $h2=(2*$b+1);
            if($h1>$c)
            break;
            elseif($h1==$c)
            {
                if($this->a[$b]>$this->a[$h1])
                  {
                  $t=$this->a[$b];
                  $this->a[$b]=$this->a[$h1];
                  $this->a[$h1]=$t;
                  $la=1;
                  }
                else
                  $la=1;
            }
            elseif(($this->a[$b]>$this->a[$h1])||($this->a[$b]>$this->a[$h2]))
            {
                if($this->a[$h1]>=$this->a[$h2])
                  {
                  $t=$this->a[$h2];
                  $this->a[$h2]=$this->a[$b];
                  $this->a[$b]=$t;
                  $b=$h2;
                  }
                else
                  {
                  $t=$this->a[$h1];
                  $this->a[$h1]=$this->a[$b];
                  $this->a[$b]=$t;
                  $b=$h1;
                  }
            }
            else
            $la=1;
            if($la==1)
            break;
          }
      }
    function getarray()
      {
      $all=count($this->a);
      $b=Floor(($all-1)/2);
      for($i=$b;$i>=1;$i--)//先将数组创立成堆
          {
            $this->runvalue($i,($all-1));
          }
      for($i=1;$i<$all;$i++)
          {
            $a1=($all-$i);
            if($i==1)
            {
                $t=$this->a;
                $this->a=$this->a[$a1];
                $this->a[$a1]=$t;
            }
            else
            {
                $end=($all-$i);
                $this->runvalue(1,$end);
                $t=$this->a;
                $this->a=$this->a[$end];
                $this->a[$end]=$t;
            }
          }
      return $this->a;
      }
}
//////
class sortarr
{
    var $a;
    function setarray($a)//获得数组
      {
      $this->a=$a;
      }
    function runvalue($i)
      {
      $max=$this->a[$i];
      $id=$i;
      for($j=($i+1);$j<count($this->a);$j++)
          {
            if($this->a[$j]>$max)
            {
                $max=$this->a[$j];
                $id=$j;
            }
          }
      if($id!=$i)
          {
            $t=$this->a[$id];
            $this->a[$id]=$this->a[$i];
            $this->a[$i]=$t;
          }
      }
    function getarray()
      {
      for($i=1;$i<(count($this->a)-1);$i++)
          $this->runvalue($i);
      return $this->a;
      }
}
//////
$s=microtime();
$st=explode(' ',$s);
$st1=$st;
$st2=$st;
//////
$v=10000;//排序数组长度
$brr=0;
for($i=1;$i<$v;$i++)
{
    $brr[$i]=rand();
}
$check=2;//1 stand for heapsort 2 stand for another sort
echo'after sort!!<br>';
if($check==1)
{
    $arr=new heapsort;
    $arr->setarray($brr);
    $ok=$arr->getarray();
    for($i=1;$i<$v;$i++)
      {
      $j=((($i+1)>($v-1))?($v-1):($i+1));
/*
if($ok[$j]<$ok[$i])
          echo'<font color=red>'.$ok[$i].'</font><br>';
      else
          echo$ok[$i].'<br>';*/
      }
}
elseif($check==2)
{
    $arr=new sortarr;
    $arr->setarray($brr);
    $ok=$arr->getarray();
    for($i=1;$i<$v;$i++)
      {
      $j=((($i+1)>($v-1))?($v-1):($i+1));/*
      if($ok[$j]<$ok[$i])
          echo'<font color=red>'.$ok[$i].'</font><br>';
      elseif($ok[$j]>$ok[$i])
          echo'<font color=green>'.$ok[$i].'</font><br>';
      else
          echo$ok[$i].'<br>';*/
      }
}
elseif($check==3)
{
    sort($brr);
    $ok=$brr;
    for($i=1;$i<$v;$i++)
      {
      $j=((($i+1)>($v-1))?($v-1):($i+1));/*
      if($ok[$j]<$ok[$i])
          echo'<font color=red>'.$ok[$i].'</font><br>';
      elseif($ok[$j]>$ok[$i])
          echo'<font color=green>'.$ok[$i].'</font><br>';
      else
          echo$ok[$i].'<br>';*/
      }
}
else
{
    echo'参数输出毛病!!<br>';
}
//////
$s=microtime();
$st=explode(' ',$s);
$sta=$st;
$stb=$st;
$ss1=$sta-$st1;
$ss2=$stb-$st2;
if($check==1)
$word='堆排序';
elseif($check==2)
$word='惯例排序';
elseif($check==3)
$word='通俗排序';
else
$word='无排序';
echo$word.'对具有'.$v.'个元素的数组排序,损耗了'.($ss2+$ss1).'秒工夫';
//////
?>
在我开始学习PHP以前,我从未想过要做软件工程,即便是在去听过华育国际的关于软件工程的美好前景后,因为我一直都没有想过要与代码打交道,而是想学好所学专业,做个网络工程师或者是网络安全人员。

admin 发表于 2015-2-4 13:17:14

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

不帅 发表于 2015-2-4 13:33:37

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

分手快乐 发表于 2015-2-9 23:44:28

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

仓酷云 发表于 2015-2-21 20:49:29

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

因胸联盟 发表于 2015-2-22 11:31:53

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

柔情似水 发表于 2015-2-25 17:35:50

爱上php,他也会爱上你。

只想知道 发表于 2015-3-1 17:25:52

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

乐观 发表于 2015-3-2 15:09:31

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

若相依 发表于 2015-3-7 00:49:41

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

再现理想 发表于 2015-3-7 13:10:32

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

愤怒的大鸟 发表于 2015-3-15 06:18:15

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

飘灵儿 发表于 2015-3-17 19:09:43

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

莫相离 发表于 2015-3-24 20:56:01

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

再见西城 发表于 2015-4-1 08:10:10

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

山那边是海 发表于 2015-4-1 18:08:41

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

变相怪杰 发表于 2015-4-24 11:34:21

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

谁可相欹 发表于 2015-6-4 12:30:37

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

冷月葬花魂 发表于 2015-6-5 13:58:24

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

第二个灵魂 发表于 2015-6-6 03:20:12

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
页: [1]
查看完整版本: PHP编程:heapsort(PHP)