这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 PHP 常用排序算法, 结合实例形式总结分析了 php 常见的排序算法, 包括基本排序、冒泡排序、快速排序、插入排序等, 需要的朋友可以参考下
本文实例总结了 PHP 常用排序算法。分享给大家供大家参考,具体如下:
- 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);
运行结果:
- Array
- (
- [0] => 4
- [1] => 4
- [2] => 4
- [3] => 5
- [4] => 5
- [5] => 5
- [6] => 5
- [7] => 5
- [8] => 5
- [9] => 5
- )
- Array
- (
- [0] => 4
- [1] => 4
- [2] => 4
- [3] => 5
- [4] => 5
- [5] => 5
- [6] => 5
- [7] => 5
- [8] => 5
- [9] => 5
- )
- Array
- (
- [0] => 4
- [1] => 4
- [2] => 4
- [3] => 5
- [4] => 5
- [5] => 5
- [6] => 5
- [7] => 5
- [8] => 5
- [9] => 5
- )
- Array
- (
- [0] => 4
- [1] => 4
- [2] => 4
- [3] => 5
- [4] => 5
- [5] => 5
- [6] => 5
- [7] => 5
- [8] => 5
- [9] => 5
- )
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0807/340614.html