分治
SYaoJun
这个作者很懒,什么都没留下…
展开
-
归并排序
#include<iostream> #include<cmath> using namespace std; //a原数组 s起始 m中间 e终点 tmp临时数组 void merge(int a[], int s, int m, int e, int tmp[]){ //归并时间复杂度O(n) int k=0; int i=s,j=m+1; while(i&l...原创 2019-05-17 11:13:56 · 117 阅读 · 0 评论 -
快速排序
还可以优化 使用随机取值,而不是取首位的数值。 使用荷兰国旗算法优化。 #include<iostream> #include<cmath> using namespace std; void swap(int &a, int &b){ //交换变量a,b的值 int tmp = a; a=b; b=tmp; } void quicksort(...原创 2019-05-17 11:41:55 · 147 阅读 · 0 评论 -
788. 逆序对的数量
逆序对 1.左半边内部的逆序对数量 2.右半边内部的逆序对数量 3.中间的逆序对 #include <iostream> #include <string> #include <algorithm> using namespace std; typedef long long LL; const int N =1e5+7; int arr[N], tmp[N];...原创 2019-09-05 11:40:00 · 246 阅读 · 0 评论 -
计算数组的小和
类似于逆序对的问题 使用归并算法 注意整型会溢出,需要使用长整型。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1e5+5; typedef long long LL; int A[N]; LL merge(int l, ...原创 2019-09-30 11:17:18 · 337 阅读 · 0 评论