![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
你别教我打游戏
直面困难,重视过程,追求结果,淡忘过去。
展开
-
常见排序算法笔记(插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、基数排序)
插入排序 class Solution { public: vector<int> insertion_sort(vector<int>& nums) { for(int j=1;j<nums.size();j++){ int i = j-1; int key = nums[j]; while(i>=0 && nums[i]>key){ .原创 2020-10-08 00:05:57 · 188 阅读 · 0 评论 -
AcWing 803. 区间合并 (排序 + 贪心 + 区间合并)
803. 区间合并 #include <bits/stdc++.h> using namespace std; typedef pair<int,int> P; int main(){ int n,ans = 0; cin>>n; vector<P> v; for(int i=0;i<n;i++) { P p; cin>>p.first>>p.second;原创 2021-03-24 22:34:31 · 44 阅读 · 0 评论 -
AcWing 788. 逆序对的数量
788. 逆序对的数量 #include<bits/stdc++.h> using namespace std; int n,a[100010]; long long solve(int l,int r){ if(l>=r) return 0; int mid = (l+r) / 2; long long res = solve(l,mid) + solve(mid+1,r); vector<int> v;原创 2021-03-14 19:36:50 · 45 阅读 · 0 评论 -
AcWing 787. 归并排序
787. 归并排序 #include<bits/stdc++.h> using namespace std; int n; int a[100010]; void merge_sort(int l,int r){ if(l>=r) return; int mid = (l+r)/2; merge_sort(l,mid); merge_sort(mid+1,r); vector<int> v; int i = l;原创 2021-03-14 19:23:52 · 111 阅读 · 0 评论 -
AcWing 786.第k个数(快速排序)
786. 第k个数 #include <iostream> using namespace std; const int N = 100010; int q[N]; int quick_sort(int q[], int l, int r, int k) { if (l >= r) return q[l]; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) {原创 2021-03-14 16:45:39 · 67 阅读 · 0 评论 -
AcWing 785. 快速排序(数据增强 —— 随机化分界点、区间中值作分界点)
785. 快速排序 下面是《算法导论》的快拍版本, 虽然使用了随机化挑选基准值,但是如果所有元素都是相等的,那么还是O(n2)O(n^2)O(n2)的时间复杂度。 #include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; const int N = 101000; int n, a[N]; int partion(int l,int r){ int base =原创 2021-03-14 15:37:41 · 90 阅读 · 0 评论 -
UVA - 11292消灭恶龙——排序+贪心
Dragon of Loowater #include<stdio.h> #include<iostream> #include<cmath> #include<math.h> #include<string> #include<string.h> #include<algorithm> #include<...原创 2020-03-15 10:42:15 · 168 阅读 · 0 评论