排序
来源:互联网 发布:手机攻击软件安卓版 编辑:程序博客网 时间:2024/04/29 22:58
1.冒泡排序
function bubbleSort($array) { $len = count($array); for ( $i = 0; $i < $len; $i++ ) { $count = 0; for ( $j = 0; $j <= $len - $i; $j++ ) { if ( $array[$j] > $array[$j + 1] ) { $temp = $array[$j + 1]; $array[$j + 1] = $array[$j]; $array[$j] = $temp; $count++; } } if ( $count == 0 ) { break; } } }
2.选择排序
function selectSort($array) { $len = count($array); for ( $i = 0; $i < $len - 1; $i++ ) { $p = $i; for ( $j = $i + 1; $j < $len; $j++ ) { if ( $array[$p] > $array[$j] ) { $p = $j; } } if ( $p != $i ) { $temp = $array[$p]; $array[$p] = $array[$i]; $array[$i] = $temp; } } return $array; }
3.插入排序
function insertSort($array) { $len = count($array); for ( $i = 1; $i < $len; $i++ ) { $temp = $array[$i]; for ( $j = $i - 1; $j >= 0; $j-- ) { if ( $temp < $array[$j] ) { $array[$j+1] = $array[$j]; $array[$j] = $temp; } else { break; } } } return $array; }
4.快速排序
function quickSort($array) { $len = count($array); if ( $len <= 1 ) { return $array; } $baseNum = $array[0]; $leftArray = array(); $rightArray = array(); for ( $i = 1; $i < $len; $i++ ) { if ( $baseNum > $array[$i] ) { $leftArray[] = $array[$i]; } else { $rightArray[] = $array[$i]; } } $leftArray = $this->quickSort($leftArray); $rightArray = $this->quickSort($rightArray); return array_merge($leftArray, array($baseNum), $rightArray); }
0 0
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- HDU 1800
- 对SparseArray初步认识
- openstack-ocata版本nova MQ(rpc)发送端浅析
- C分配内存空间
- Linux驱动技术(七) _内核定时器与延迟工作
- 排序
- 题目1142:Biorhythms
- 原生js实现多选框的排序以及可选个数控制
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 26: ordinal not in range(128)
- Android 自定义View(一)
- 【Android】安卓开发实战之自定义对话框位置、大小、颜色、形状
- 为什么你的学习总是无效?
- [Android开发] RxJava2之路六
- Android开发:最全面、最易懂的Android屏幕适配解决方案