基础排序算法记录

1.冒泡排序

1.1 小数上浮

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function bubble($arr) {
if (is_array($arr)) {
if (($cnt = count($arr)) !== 0) {
for ($i = 0; $i < $cnt - 1; $i++) {
for ($j = $cnt - 1; $j > $i; $j--) {
if ($arr[$j] < $arr[$j - 1]) {
$tmp = $arr[$j - 1];
$arr[$j - 1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
}
}
}

1.2 大数下沉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function bubble1($arr) {
if (is_array($arr)) {
if (($cnt = count($arr)) !== 0) {
for ($i = $cnt - 1; $i > 0; $i--) {
for ($j = 0; $j < $i; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
}
}
}
}
}

2. 插入排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function insert1($arr) {
if (is_array($arr)) {
if (($cnt = count($arr)) !== 0) {
for ($i = 0; $i < $cnt; $i++) {
$j = $i;
$tag = $arr[$i];
while ($j > 0 && $tag < $arr[$j - 1]) {
$arr[$j] = $arr[$j - 1];
$j--;
}
$arr[$j] = $tag;
}
}
}
}

3.选择排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function xuanze(array $arr){
if (is_array($arr)) {
if (($cnt=count($arr))!==0) {
for ($i=0; $i < $cnt; $i++) {
for ($j=$i+1; $j < $cnt; $j++) {
if ($arr[$i]>$arr[$j]) {
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
}
}
}