摘要:
首先是堆的概念。 堆就是完全二叉树,即叶子节点只可能在最大的两层上出现,且只允许最大的一层上有空缺,且空缺的节点必须是从左到右连续的。 堆可以分为大根堆和小根堆,其中大根堆就是每个子树的根节点都是最大的,而小根堆中的每个子树都是根节点中最小的。 堆排序中可以利用数组来实现大根堆,父节点在i位置上,则 阅读全文
posted @ 2020-04-23 16:28
肉松松松松
阅读(136)
评论(0)
推荐(0)
摘要:
经典快速排序思想:找到一个数组的最后一个元素当作标准值,大于小于这个数的元素排在数组的左边,大于这个数的元素排在数组的右边,最后把大于数组的第一个元素和这个标准值进行交换。这时候算法的复杂度基于数据的有无序性,因为每次排序只能排好一个标准值的顺序,如果这个数据本来就是顺序或者逆序的就会导致O(n^2 阅读全文
posted @ 2020-04-23 13:56
肉松松松松
阅读(135)
评论(0)
推荐(0)
摘要:
题目一:给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(n)。 解题思路:定义一个less区域,这个区域里的数字一定小于等于num,所以less指针一开始指向数组的前一个位置上,cur指针指在当前数组的 阅读全文
posted @ 2020-04-23 11:43
肉松松松松
阅读(108)
评论(0)
推荐(0)

浙公网安备 33010602011771号