IT技术博客大学习 共学习 共进步

php数组排序

PHP开发 2010-06-02 11:54:02 浏览 4,085 次

近日,看到一关于PHP数组排序的问题,居然在瞬间没有想出如何实现!真的是有点丢分呢。。。

于是想起CSDN上曾有一篇文章说过只有20%的人能够实现二分查找,看来我在那20%之外了

于是想了一下,得出以下实现算法,供大家借鉴。

<?php
class sortNum{
        private $_sortArr;
        private $_tmp = array();
        function __construct($arr=array()){
                if(count($arr)!=0)
                        $this->_sortArr = $arr;
        }
        function __desctruct(){
            unset($this->_sortArr);
            unset($this->_item);
        }
        public function setNum($arr){
                if(count($arr)!=0){
                        $this->_sortArr = $arr;
                        return true;
                }else
                        return false;
        }
        public function sortArray(){
            $num=count($this->_sortArr);
            $min=-999999999;
            for($i=0;$i<=$num;$i++){
                $mina=999999999;
                foreach ($this->_sortArr as $key => $value) {
                    if($value>$min&&$value<$mina){
                        $this->_tmp[$i]=$value;
                        $mina=$value;
                    }
                }
                $min=$mina;
            }
            return $this->_tmp;
        }
}

$st = array(2,6,1,5,3,7);
$obj=new sortNum($st);
$rs = $obj->sortArray();
print_r($rs);

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 5
    [4] => 6
    [5] => 7
)

这里,看来以后得多加注意这种基本的算法问题了,不然再次出现这种情况,可真是冤啊。。。

建议继续学习

  1. 如何使用1M的内存排序100万个8位数 (阅读 12,226)
  2. 快速排序(Quicksort)的Javascript实现 (阅读 11,543)
  3. 腾讯-1亿个数据取前1万大的整数-题解答 (阅读 9,944)
  4. 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序) (阅读 7,424)
  5. 深入浅出交换类排序算法(冒泡排序,快速排序) (阅读 6,984)
  6. 为什么数组标号是从0开始的? (阅读 6,164)
  7. C语言结构体里的成员数组和指针 (阅读 6,083)
  8. Java程序员必知的8大排序算法 (阅读 5,563)
  9. 将数组定义为常量 (阅读 5,544)
  10. Mysql中的排序优化 (阅读 5,523)