排序算法
Gnomeshgh___
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。思路自定义cmp具体代码class Solution {public: static bool cmp (int a, int b) { return a % 2 > b % 2; } vector<in原创 2021-05-16 00:36:56 · 55 阅读 · 0 评论 -
leetcode 905. 按奇偶排序数组(三种方法)
题目描述给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路第一种方法:扫描数组两遍第二种方法:基于快排的思想第三种方法:自定义cmp排序具体代码方法一class Solution {public: vector<int> sortArray原创 2021-05-16 00:28:45 · 125 阅读 · 0 评论 -
剑指 Offer 57 - II. 和为s的连续正数序列 (滑动窗口)
题目描述输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。思路如果和小于target的话,右指针向右移动如果和大于target的话,左指针向右移动如果等于target的话,记录这组方法注意:这个滑动窗口是左闭右开的区间具体代码class Solution {public: vector<vector<int>> findContinuousSequen原创 2021-05-15 23:37:39 · 64 阅读 · 0 评论 -
leetcode 1636. 按照频率将数组升序排序
题目描述给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。请你返回排序后的数组。思路1.统计每个数出现的频率2.排序具体代码class Solution {public: vector<int> frequencySort(vector<int>& nums) { unordered_map<int, int> cnt; for原创 2021-05-15 22:29:55 · 105 阅读 · 0 评论 -
逆序对数(归并排序)
逆序对数问题描述:给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000问题分析这个题可以用归并排序来写。每次把一个数组分成两个子数组,递归对两边的子数组进行排序,在递归处理排序时可以直接计原创 2020-11-02 22:50:58 · 2000 阅读 · 0 评论 -
第k个数
第可个数问题描述:给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在1~109范围内),表示整数数列。输出格式输出一个整数,表示数列的第k小数。数据范围1≤n≤100000,1≤k≤n问题分析:这一道题可以用快排来写,直接对数组进行排序,再输出第个数 ,这样时间复杂度是o(nlogn).有一个优化的方法,根据快排的思想而写的快速选择算法,时间复杂度仅为O(n)。这原创 2020-11-02 21:25:53 · 689 阅读 · 0 评论 -
排序算法快速排序
快速排序原理快速排序采用的是分治的思想。设定一个基准值(这个基准值最好别取两个边界的值。可能发生边界问题),将大于这个值的数放在该值的后边,将小于这个值的数放在该值的前边。通过递归调用来完成排序。动图演示代码实现#include<iostream>#include<algorithm>using namespace std;const int N = 1e5 + 10;int n;int a[N];void quick_sort(int a[], int原创 2020-10-31 16:16:44 · 113 阅读 · 0 评论