奇奇怪怪的排序

134 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

冒泡排序

冒泡排序,有时也称为下沉排序,是一种简单的排序算法,它反复遍历要排序的列表,比较每对相邻的元素,如果它们的顺序错误(升序或降序排列),则交换它们。重复遍历列表直到不需要交换,这表明列表已排序。

1.gif

选择排序

每次便利除了排好序的头部,每次便利从数组中选出一个最小值,依次从头部向下插入,知道数组的所有元素都被选出后结束。

2.gif

插入排序

如果数列的前面存在比自己大的数,则依次和前面的数比较,找到比自己小的数则插入到后面即可,知道整个数组中所有元素都进行比较过后结束。

3.gif

堆排序

生成大根堆使用树形结构,将数组中的元素依次插入到树上,然后根据大根堆的定义进行调整,每次会生成一个最大根,然后把除去每次生成的最大值,再将剩下的元素再生成大根堆,依次生成最大值。知道所有元素排完序。(大根堆:即左右子节点的值都小于父节点。)

4.gif

归并排序

分成两个一组,进行比较,然后进行两组的合并,每次从两组中选出最小值进行比较,然后将生成的有序组,再和其他的组进行比较。

快速排序

从数组中选取一个枢纽出来,按这个枢纽进行分区,大的放到枢纽后面,小的放到枢纽前面,这时确认了枢纽的位置,然后在大区和小区在进行选枢纽进行分区。

5.gif

希尔排序

选取一个间隔进行分组,然后将每组中小的放到前面,大的放到后面,然后在选取一个小的间隔进行分组,执行上面的操作,知道间隔数为1时结束。