算法总结
Y_CanFly
拿着相机写代码
展开
-
【算法笔记】排序算法的应用:sort函数的应用以及比较函数的写法
刷完了PAT甲级的排序算法专块,写一个小总结吧。其实PAT的排序算法题思路都不难,难就难在细节的把握还有一些边缘条件的判断。sort函数在C++的algorithm库中,使用时需要#include <algorithm>sort函数的前两个参数其实就是要排序序列的首尾地址,可以根据这个对某个数组的子序列进行排序,另外快排的时间复杂度为O(nlogn)sort(a...原创 2018-11-01 20:25:43 · 320 阅读 · 0 评论 -
【算法笔记】二分法的使用(使用目的+模板)
今天看完《算法笔记》里二分法这个章节,稍微总结一下。二分法的思想主要就是折半查找,达到O(logn)的查找速度。使用目的或者说使用情景主要有如下三个,下面将依次介绍。查找有序序列中是否存在满足条件的元素 查找有序序列中满足条件的第一个元素 对一些函数进行求根(近似)计算1. 查找有序序列中是否存在满足条件的元素下面的函数是找到a[]数组中是否有等于x的元素,如果有返回索引下标...原创 2018-11-12 21:56:31 · 615 阅读 · 0 评论 -
【算法笔记】散列(hash)总结
有两天没写博客了,前两天刷完了PAT甲级中的散列的题目,做一个小小的总结。散列的定义:将元素通过一个函数转化成一个整数,使得该整数能够尽量唯一地代表这个元素。最常用的散列:对于数字而言,H(key) = key,最常见的用法是某个数字直接作为对于数组的下标。比如标记某个数字num(0 <= num <= 10000)是否出现过,可以直接映射到bool数组vis[10...原创 2018-11-05 15:39:53 · 237 阅读 · 0 评论 -
【算法笔记】快速幂的两种写法(递归法+迭代法)
快速幂的递归法// 求a^b%m ll binaryPow(ll a, ll b, ll m) { if (b == 0) return 1; if (b %2 == 1) { return a * binaryPow(a, b-1, m) % m; } else { ll tmp = binaryPow(a, b/2, m); return tmp * tmp % m...原创 2019-02-18 09:45:58 · 1141 阅读 · 1 评论