一个程序应包括:
对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
对操作的描述:即操作步骤,也就是算法(algorithm)。
Nikiklaus Wirth提出的公式:程序=数据结构+算法
作为一个程序员必须得懂点算法啊,就从最简单的开始吧=>冒泡排序
维基百科的说法
冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
我理解冒泡排序就是小学生排队,你比我个子矮(数字小),你就站我前面(浮上去),直到找到比我个子高那个,我站在他的前面,他继续往后面比个子!
直接上PHP代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
/**
* User: wujunze
* Email: itwujunze@163.com
* Blog: https://wujunze.com
* Date: 2016/8/25
*
*/
$arr
=
array
(1, 43, 54, 72, 21, 66, 32,55,11, 78, 36, 76, 39,88);
function
getpao(
$arr
)
{
$len
=
count
(
$arr
);
//设置一个空数组 用来接收冒出来的泡
//该层循环控制 需要冒泡的轮数
for
(
$i
= 1;
$i
<
$len
;
$i
++) {
//该层循环用来控制每轮 冒出一个数 需要比较的次数
for
(
$k
= 0;
$k
<
$len
-
$i
;
$k
++) {
if
(
$arr
[
$k
] >
$arr
[
$k
+ 1]) {
$tmp
=
$arr
[
$k
+ 1];
$arr
[
$k
+ 1] =
$arr
[
$k
];
$arr
[
$k
] =
$tmp
;
}
}
}
return
$arr
;
}
var_dump(getpao(
$arr
));
|