这里介绍一些简单的算法,包括:冒泡排序、快速排序、二分查找、二叉树的遍历、二叉树的层次遍历、二叉树的前序、中序、后序遍历,一些简单的实现。
冒泡排序
1 | function bubble_sort($arr) |
冒泡排序过程的详细步骤,假设我们有一个数组 [64, 34, 25, 12, 22, 11, 90] 需要进行升序排序:
第一轮冒泡:
- 比较 64 和 34,64 > 34,交换它们的位置,数组变为 [34, 64, 25, 12, 22, 11, 90]
- 比较 64 和 25,64 > 25,交换它们的位置,数组变为 [34, 25, 64, 12, 22, 11, 90]
- 比较 64 和 12,64 > 12,交换它们的位置,数组变为 [34, 25, 12, 64, 22, 11, 90]
- 比较 64 和 22,64 > 22,交换它们的位置,数组变为 [34, 25, 12, 22, 64, 11, 90]
- 比较 64 和 11,64 > 11,交换它们的位置,数组变为 [34, 25, 12, 22, 11, 64, 90]
- 比较 64 和 90,64 < 90,不需要交换,这一轮结束
第一轮冒泡后,最大的数 90 被“冒泡”到了数组的最后一位。