冒泡排序
- 介绍
从第一个数据开始,依次比较相邻元素的大小。如果前者大于后者,则进行交换操作,把大的元素往后交换。通过多轮迭代,直到没有交换操作为止。
- 图解
- 创建 bubble.php 内容如下:
1 | <?php |
- 执行
1 | $ php bubble.php |
插入排序
- 介绍
选取未排序的元素,插入到已排序区间的合适位置,直到未排序区间为空。
- 图解
- 创建 insert.php 内容如下:
1 | <?php |
- 执行
1 | $ php insert.php |
归并排序
- 介绍
归并排序的原理其实就是分治法(二分法)。它采用了二分的迭代方式,首先将数组不断地二分,直到最后每个部分只包含 1 个数据。然后再对每个部分分别进行排序,最后将排序好的相邻的两部分合并在一起,这样整个数组就有序了。
- 图解
- 创建 merge.php 内容如下:
1 | <?php |
- 执行
1 | $ php merge.php |
快速排序
- 介绍
快速排序法的原理也是分治法。它的每轮迭代,会选取数组中任意一个数据作为分区点,将小于它的元素放在它的左侧,大于它的放在它的右侧。再利用分治思想,继续分别对左右两侧进行同样的操作,直至每个区间缩小为 1,则完成排序。
- 图解
- 创建 quick.php 内容如下:
1 | <?php |
- 执行
1 | $ php quick.php |
选择排序
- 介绍
每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
- 图解
- 创建 select.php 内容如下:
1 | <?php |
- 执行
1 | $ php select.php |
关联
[[Go 实现常用的五种算法排序]]