class bevin{ public $public = 'public'; private $private = 'private'; protected $protected = 'protected'; //final $final = 'final'; static $static = 'static'; function __construct(){ $this->protected = 'change private'; } public function setValue($a){ self::$static = $a; } public function getValue(){ echo $this->private; } function __destruct(){ echo 'asdfsadf'; } } class paixu { // 基本排序 public function t_sortArray($array) { if(is_array($array) && count($array)>1) { for($i=0; $i<count($array); $i++) { for($j=($i+1); $j<count($array); $j++) { $temp = $array[$i]; if($array[$j]<$array[$i]) { $array[$i] = $array[$j]; $array[$j] = $temp; } } } return $array; } else { return $array; } } // 冒泡排序 public function c_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } $status = false; foreach($array as $key=>$v) { if($key>0) { if($array[$key-1]>$array[$key]) { $array[$key] = $array[$key-1]; $array[$key-1] = $v; $status = true; } } } if($status) { return $this->c_sortArray($array); } else { return $array; } } // 快速排序 public function v_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } if(count($array)>2) { $m = $array[floor(count($array)/2)+1]; } else { if($array[0]>$array[1]) { $temp = $array[0]; $array[0] = $array[1]; $array[1] = $temp; } return $array; } $leftarray = array(); $rightarray = array(); foreach($array as $key=>$v) { if($v>$m) { $rightarray[] = $v; } if($v<$m) { $leftarray[] = $v; } if($v==$m) { $mid[] = $v; } } $nleftarray = $this->v_sortArray($leftarray); $nrightarray = $this->v_sortArray($rightarray); return array_merge($nleftarray,$mid,$nrightarray); } // 直接插入排序 public function i_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } $newarray = array($array[0]); $temp = 0; foreach($array as $k=>$v) { if($k>0) { if($v>=$newarray[count($newarray)-1]) { $newarray[] = $v; } else { foreach($newarray as $nk=>$nv) { if($v<$nv) { $temparray = array(); foreach($newarray as $ck=>$cv) { if($ck<$nk) { $temparray[$ck] = $cv; } elseif($ck==$nk) { $temparray[$ck] = $v; $temparray[($ck+1)] = $cv; } else { $temparray[($ck+1)] = $cv; } } $newarray = $temparray; break; } } } } } return $newarray; } } $bevin = new paixu; $array = array(5,4,5,4,4,5,5,5,5,5); $v = $bevin->t_sortArray($array); print_r($v); $v = $bevin->c_sortArray($array); print_r($v); $v = $bevin->v_sortArray($array); print_r($v); $v = $bevin->i_sortArray($array); print_r($v);