
算法
根号二点五
胜天半子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【面试常见】算法思路题总结(大数运算+找最大的k个数+1TB数用32GB内存排序+快排稳定+找到有序数组相加为0的一对数+链表相关问题+1-100中不存在于数组a[99]的数)
1.大数运算(整型或浮点型)大数加减乘除、阶乘以下,都为人工竖式思路加法:模拟人工竖式,标记进位减法:先判断大的,模拟人工竖式,标记借位乘法:模拟竖式,从低位向高位乘,再进行各位的加法及进位除法:取模:模拟人工竖式,被除数-除数的10^n的倍数,n即商的所在位取余:如上阶乘:求阶乘位数:lg(N!) = [lg(N*(N-1)*(N-2)*...*3*2*1)]+1= [lgN+lg(N-1)+lg(N-2)+...+lg3+lg2+lg1]+1求阶乘:进位,一个个相乘,a[]标记每一原创 2020-10-26 23:09:16 · 590 阅读 · 1 评论 -
n 后问题算法分析与实现
学习要求算法:熟练运用动态规划法、回溯法和分支界限法求解问题,并分析性能编程:掌握多维数组、堆等数据结构以及递归函数的操作n 后问题思想N皇后问题其实就是回溯算法中的一个典型应用回溯算法定义回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回原创 2020-06-22 10:08:44 · 1808 阅读 · 0 评论 -
【动态规划】思想 & 基本要素 & 运用动态规划求解问题
思想 & 基本要素先讲一个问题来了解动态规划算法的思想矩阵连乘问题问题描述:给定 n 个矩阵 { A1, A2, … , An } 其中相邻的矩阵是可乘的,求它们的连乘积 A1, A2, … , An完全加括号:以加括号的形式,明确指明矩阵连乘的计算顺序,记为 ( A1, A2, … , An )不同的完全加括号式对应不同的运算次数矩阵连乘问题即为寻找运算次数最小的完全加括号式穷举搜索法再思考下列问题:分治算法的三个要点:子问题与原问题的性质相同,子问题的求解彼此独立,划分原创 2020-05-29 16:35:06 · 1041 阅读 · 0 评论 -
【贪心算法】思想 & 基本要素 & 贪心算法与局部最优 & 贪心算法与动态规划的区别 & 运用贪心算法求解问题
首先我们先代入问题来认识一下贪心算法涉及的问题找钱问题给顾客找钱,希望找零的钞票尽可能少,零钱种类和数量限定找钱问题满足最优子结构最快找零(贪心):为得到最小的找零次数,每次最大程度低减少零额活动安排问题设 个活动都需要使用某个教室,已知它们的起始时间和结束时间,求合理的安排使得举行的活动数量最多贪心:使得每次安排后,教室的空闲时间最多解决过程如下:贪心算法求得的相容活动集是最大的第一步:证明最优解中包含结束时间最早的活动设相容集 A 是一个最优解,其结束最早的活动为 a,则原创 2020-05-28 00:49:24 · 5182 阅读 · 0 评论 -
【各种查找算法】 实现及分析
基本查找算法顺序查找说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表。基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。复杂度分析:查找成功时的平均查找长度为:ASL = 1/n(1+2+3+…+n) = (n+1)/2 ;...原创 2020-05-03 21:34:39 · 687 阅读 · 0 评论 -
【项目】磁盘文件管理工具
项目介绍该项目创建的目的为删除磁盘中重复文件,通过计算指定路径下的文件指纹(数字签名)来判断两个文件是否相同,从而按照文件名、文件指纹或模糊匹配删除相同文件项目原理计算机签名方法数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。 是一种类似写在纸上的普通的物理签名常用的数字签名方法主要有:HASH算法 ,此算...原创 2020-03-17 23:31:11 · 948 阅读 · 0 评论 -
七种内部排序 实现及时间复杂度分析
排序分类排序分为内部排序和外部排序两种内部排序内部排序通常为常见的七种算法,本实验要求掌握选择排序、冒泡排序、合并排序、快速排序、插入排序、堆排序、希尔排序算法一:插入排序插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入算法步骤:将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当...原创 2020-02-18 01:39:21 · 2221 阅读 · 0 评论 -
斐波那契数列 问题分析及运用(兔子繁殖问题)
Fibonacci 定义斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。具体是这样一个数列:1、1、2、3、5、8、13、21、34、……可以定义为以下关系:当n>1时,这个数列第n项的值是前两项之和实现 Fibonacci 代码由 Fibon...原创 2019-09-11 23:56:47 · 6748 阅读 · 0 评论