数据结构概览。本次排序中我们会用到堆的这些知识:堆是一棵完全二叉树,具备完全二叉树的特点:用数组来存储所有节点时,可以保证没有间隙。父节点与左子节点的索引满足:parent x 2 + 1 = left_child父节点与右子节点的索引满足:parent x 2 + 2 = right_child最后一个节点的索引:last = n - 1最后一个节点的父节 ......
357
0
0
2022-10-15
原理基数排序与计数排序的思路类似,在计数排序的基础上增加了桶的使用。基数排序一般用于对正整数的排序,排序过程中先根据个位进行分桶,将数字插入到基数 0-9 的各个桶中,接着顺序取出,这样就对个位排好序了,然后再根据十位上的数字依次插入到 0-9 的桶中,接着顺序取出,直到排到最高位。步骤首先循环原始数组,得到每一个数的个位,按照个位的数字分别插入到 0-9 ......
340
0
0
2022-10-14
原理计数排序适用于特定条件下的排序:1. 排序内容在一定范围 k 内,如 1-1000 之间的整数;2. 并且元素之间有固定的步长。对于满足上述条件的数据可以将排序内容先循环一遍,建立一个键值对映射,键为需要排序的元素,值为此元素出现的个数,最后将映射中的内容输出为有序数组即可。步骤首先循环原数组,以元素为键,出现的次数为值,存入到映射中。接着循环 k 次, ......
331
0
0
2022-10-13
原理选择排序算是最自然的排序方式了,也是最直观的排序方式。第一轮从第一个数字开始一直遍历到最后一个数字,找到其中最小的数字放到最开始。下一轮则遍历剩余的数字,找到最小的也放到前面去,以此类推直到完成所有。步骤第一轮从下标 0 的位置开始遍历直到最后一个,找到之中最小的数字挪到下标 0 的位置。接着从下标 1 的位置开始遍历到最后一个,找到之中最小的数字挪到下 ......
300
0
0
2022-10-12
PHP 冒泡排序这个应该是最大众的排序了。也算是简单排序算法中知名度最高的。冒泡排序的思路是怎么样的呢? 首先就是比较相邻的两个元素,如果满足条件,就交换,否则不动。然后是在比较接下来的两个相邻的元素,然后满足条件就叫交换,否则依然不动依次循环下去,最终一个元素会固定在最下边。举个栗子数组有5个元素从小到大排序,首先第一个和第二个比,第一个比第二个大就交换 ......
314
0
0
2022-04-21