![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 51
追光者2020
没有实力的愤怒毫无意义。
展开
-
leetcode 905. 按奇偶排序数组(快排的思路)
题目描述给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。快排的思路:快排基本思路是将基准x的左边为小于x的,右边为大于x的,现在可以使用这个基本思路,将左边放置偶数,右边放置奇数。class Solution {public: vector<int> s原创 2021-09-09 20:16:35 · 210 阅读 · 0 评论 -
面试高频题-双栈排序
题目描述给定一个乱序的栈,设计算法将其升序排列。ps: 允许额外使用一个栈来辅助操作输入[4, 2, 1, 3]输出[1, 2, 3, 4]思路:给定一个栈的所有元素,借助于另一个栈,实现排序,另一个栈的元素是有序的,如果当前栈的元素栈顶元素 t 小于辅助栈的栈顶元素,那么需要将辅助栈的栈顶元素取出,然后将该较小值加入到辅助栈中,将栈顶元素加入当前栈,在实际排序中有可能遇到辅助栈中好多元素都比当前栈顶元素大,因此需要不断地寻找,使用循环来解决,等辅助栈的栈顶元素小于 t ,将 t 放入到辅助栈原创 2021-08-25 09:16:21 · 152 阅读 · 0 评论 -
HJ101 查找和排序(自定义排序)
描述题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到高smith 67jack 70Tom 70peter 96注:0代表从高到低,1代表从低到高本题含有多原创 2021-06-20 10:50:50 · 203 阅读 · 0 评论 -
堆排序模板
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。堆排序实现模板注意:堆是完全二叉树,插入是插入到空的位置即操作叶子节点,然后push_up 即可负责将树中大的节点替换上去,构成一个堆结原创 2021-06-05 16:22:44 · 234 阅读 · 0 评论 -
LeetCode 215 数组中第k大的数(快排的应用:快速选择)
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。快速排序,在排序的过程中要有一个基准,以这个基准左边是小于它的数字,右边是大于它的所有数字,也就是 j - l +1 可以表示为小于该点的数字原创 2021-06-05 11:41:37 · 409 阅读 · 0 评论 -
day39:数组中的逆序对(归并排序模板)
问题描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof问题求解使用到了归并排序,在排序整个数组的过程中将逆序的数对个数进行求解,使用递归进行归并排序,将整个数组分成两部分,分别用 i , j 指向这两个数组原创 2020-07-04 10:48:52 · 3802 阅读 · 0 评论