摘要:
堆排序是将给定的序列看成完全二叉树的顺序存储结构来进行排序。 在学习堆排序之前,先了解一下完全二叉树的一个性质: 给定一颗完全二叉树bt,采用顺序存储结构来进行存储,那么如何表示父结点与左右孩子结点之间的关系呢? 下面分两种情况: (a).如果从下标为0的位置开始存储,那么对于下标为i的结点,其左孩 阅读全文
摘要:
直接选择排序每一趟排序都会从未排序的序列中选择出最小的元素来,然后跟未排序序列的第一个元素交换。这样经过n-1趟排序后,每趟排序选择出的 最小元素便成了有序的序列。 算法实现如下: 直接选择排序的时间复杂度为O(n2),空间复杂度为O(1)。直接选择排序同样是一种不稳定的排序算法(不稳定的排序算法有 阅读全文
摘要:
快速排序同样是一种交换排序,在以往的互联网求职面试过程中,经常有面试官让手写快排的算法,这属于最基本的知识,我们一定要烂熟于心。 首先来了解一下快排是怎么一回事:假设给定了一个序列,将序列的第一个元素(或者任意元素都行)作为基准,首先从后向前扫描序列,遇到比基 准小的元素,将其交换到基准的前面;然后 阅读全文