--分治--——————
Lazines_by
好吧,我要工作了
展开
-
poj - 1804归并求逆序对
https://vjudge.net/problem/poj-1804 这题也可以用树状数组来做的;想到归并排序求逆序对,也是一种方法,随便说说归并排序: 归并排序是把要排序的数组分成两个部分进行排序,然后将两个部分进行归并,然后在合并的时候因为两个部分都是有序的,所以当a[i] > a[j]的时候,因为i后面的数都不小于a[i],所以后面的数自然也大于a[j],所以加上的原创 2017-04-11 14:45:15 · 399 阅读 · 0 评论 -
堆排序
堆排序的思路就是: 先对数进行构建大顶堆,然后把大顶堆上面的那个最大的与最后的元素交换,然后把前n - 1个元素进行大顶堆调整,所以最大的元素在最后一个 然后把第n - 1个数和第一个数相交换,然后把前n - 1个元素进行大顶堆调整,所以第n - 1大的数在n - 1个数位中;原创 2017-04-11 16:35:19 · 214 阅读 · 0 评论 -
插入排序
原理很简单,直接看代码:#include #include #include #include #include #include using namespace std; const int maxn = 100 + 10; int a[maxn]; int n; void solve() { for(int i = 1; i <= n; i ++) { int x = a[i];原创 2017-04-11 16:39:01 · 222 阅读 · 0 评论