- 博客(2)
- 收藏
- 关注
原创 C++中堆排序详解
堆(Heap)是一种特殊的完全二叉树结构,它通常被用作优先队列的实现,或者是在实现如堆排序这样的算法时用到。堆有两种主要的类型:最大堆(Max Heap)和最小堆(Min Heap)。完全二叉树:除了最后一层外,每一层都被完全填满,并且所有节点都尽可能地向左对齐。也就是说,除最后一层外,所有层均为满层。最后一层,所有节点的排布都要靠左,直至排满。(个人理解)。最大堆:每个父节点的值都大于其子节点的值。(所有父亲都比儿子大)根节点最大最小堆:每个父节点的值都小于其子节点的值。
2024-09-03 13:49:44 280
原创 快速选择算法与快速排序算法
快速排序算法,时间复杂度为O(n log n),最坏的情况是O(n^2)。实现思想:选择一个基准元素,将数组分成两部分:比基准元素小的元素和比基准元素大的元素。小的元素,它通过分治的方式,在每次分区后只递归地处理包含目标元素的那一半数组。1. 选择基准元素,可以是第一个元素、最后一个元素、中间元素,或者随机选择。2. 设定两个指针,左指针指向数组的起始位置,右指针指向数组的结束位置,移动这两个指针,将数组分成两部分。使用两个指针,left 指向数组的起始位置,right 指向数组的末尾位置。
2024-07-15 22:38:30 520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人