会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
FLydoggie
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
2020年1月23日
算法学习——利用归并排序求逆序对的数量
摘要: 首先明白逆序对的定义,逆序对就是数组中两个元素前大后小,我们就称这两个元素为一组逆序对。 接着看题目: 我们利用分治的思想,将区间一分为二,然后得到了逆序对的存在情况共三种: 1.两个元素都在左侧区间。 2.两个元素都在右侧区间。 3.两个元素一个在左,一个在右。 那么很明显我们分治的去解决这个问题
阅读全文
posted @ 2020-01-23 21:45 FLydoggie
阅读(899)
评论(0)
推荐(0)
2020年1月15日
算法学习——归并排序
摘要: 晚上回来写 #include<iostream> using namespace std; const int N = 1e6+10; int a[N],tmp[N]; void merge_sort(int a[],int L,int R){ if(L==R)return; int mid = L
阅读全文
posted @ 2020-01-15 15:27 FLydoggie
阅读(123)
评论(0)
推荐(0)
算法学习——快速选择算法
摘要: 快速选择算法本质上就是将快速排序算法进行优化,快速排序算法会递归左右区间来进行排序。而快速选择算法对左区间和右区间的数据个数与需要寻找的第K大的数字进行比较,然后选择了答案所存在的区间,舍弃了另一个不需要的区间,使算法复杂度降低到 O(n+ n/2 + n/4 +...+)也就是 O(n); 例题:
阅读全文
posted @ 2020-01-15 14:07 FLydoggie
阅读(1118)
评论(0)
推荐(0)
算法学习——快速排序
摘要: 快速排序(分治算法) const int n = 1e6 + 10; int a[N]; //a[]:待排序数组,L:排序数组的起始下标,R:排序数组的结束下标 void quick_sort(int a[],int L,int R){ if(l >= r){return;} //递归的终止条件 i
阅读全文
posted @ 2020-01-15 13:24 FLydoggie
阅读(98)
评论(0)
推荐(0)
2019年11月15日
剑指Offer_题解 C++
摘要: 1.二维数组中的查找 题目描述 思路,本来想着暴力写一遍,但是暴力估计面试的时候直接被pass,所以思考了优化,首先能确定这个二维数组的规模是一个矩形,也就是每个一维的长度都相等的二维数组。然后尝试先确定答案的所在行,然后确定答案的所在列。但是这是个错误思路。错误的原因是因为题目只分别保证了横向递增
阅读全文
posted @ 2019-11-15 09:42 FLydoggie
阅读(247)
评论(0)
推荐(0)
2019年5月5日
ZOJ3983 & CCPC2017 秦皇岛站 签到题C E L题解
摘要: 快要省赛了所以就开始补以前比赛的题目。不过由于水平限制只能补补签到题,算是监督自己吧,决定把这最后两个星期补的水题都写写题解吧。 C - Crusaders Quest C题理解了题意就是消除方块,求最大消除的三连块数量。因为只有9个方块,而且每种方块的数量都只有3个,所以其实第一反应是暴力,但是我
阅读全文
posted @ 2019-05-05 17:29 FLydoggie
阅读(313)
评论(0)
推荐(0)
上一页
1
2
3
公告