![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法-数组类
文章平均质量分 53
笑笑张丶
这个作者很懒,什么都没留下…
展开
-
堆排序 | 堆top排序
堆排序思想:利用堆(大顶堆/小顶堆)的性质,对堆的性质进行维护,利用这个性质进行建堆,然后利用堆顶为最大值或最小值的性质,顶堆元素与堆尾元素进行交换,交换后 剔除已经为最大值的堆尾元素,重新对堆顶进行堆的性质维护。堆top排序思想:由堆排序的思想可知,每一次的排序,都是把为最大值堆顶元素交换到堆尾,然后剔除堆尾重新进行下一次的排序。--i) // size / 2 为堆的最后一个父节点。--i) // size / 2 为堆的最后一个父节点。//使假设的父节点的值交换为最大值。原创 2023-08-15 19:45:13 · 34 阅读 · 1 评论 -
快速排序 | 快速选择排序
快速排序,快速top排序原创 2023-08-14 12:11:37 · 51 阅读 · 0 评论 -
leetcode 数组类算法 移除元素
定义两个下标,一个进行for循环用来判断当前值是否等于val,若不是,则赋值给另一个下标并且另一个下标++,若不是,进行for循环的下标++。返回另一个下标大小即为新的数组size。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。个人思考:遍历数组,删除等于val的值,数组size--,返回size;元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。原创 2023-07-21 18:30:05 · 31 阅读 · 1 评论 -
leetcode 数组类算法 移动0
左边指针遇到非0继续向右移动,遇到0时,和右边指针交换元素,之后,左边指针不移动,右边指针向左移动一个。左边指针移动次数为数组大小。遇非0,数组迭代器++。简单描述:遍历数组遇0抓取放到尾部。个人思考:for循环数组,循环次数为数组大小,遇0删除,数组尾插0,数组迭代器不++使用双指针,左边指针指向待处理序列的头部,右边指针指向当前已经处理好的序列的尾部。移动到数组的末尾,同时保持非零元素的相对顺序。必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。原创 2023-07-21 17:30:52 · 34 阅读 · 1 评论