(1)时间频度:一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 (2)时间复杂度:算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记 ...
分类:
编程语言 时间:
2020-04-20 14:04:58
阅读次数:
66
Java算法与数据结构学习 一.数组 1.使用自定义类封装数组 3.查找算法 线性查找 (从头查到尾) 见上面的查找方法 二分法查找 (数组必须是有序数组) 二.简单排序 1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 ...
分类:
编程语言 时间:
2020-03-29 18:00:41
阅读次数:
89
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 1 ...
分类:
编程语言 时间:
2020-03-26 19:45:44
阅读次数:
86
虽然这个文章看着很多,但是大多是对于细节的讲解,如果想要快速了解,可以直接观看末尾代码.上面的代码内容都是来自于文章末尾的代码. 很重要的算法,也是比较简单的算法。 但是在java中,因为不存在c和c++中指针这个东西. 链表是一种物理 "存储单元" 上非连续、非顺序的 "存储结构" , "数据元素 ...
分类:
编程语言 时间:
2020-03-12 13:01:07
阅读次数:
86
循环队列 我们再用队列得时候不知道发没发现这样一个问题. 这是一个只有三个位置得队列,在进行三次加入(addqueue)操作和三次取出(get)操作之后再进行加入操作时候的样子.明显可以看到,队列已经无法使用了.队列是靠rear和front指针来进行操作的.这两个指针只能向后运动,并不能向前移动,所 ...
分类:
编程语言 时间:
2020-03-10 21:35:08
阅读次数:
56
数据结构必要知识 线性结构 线性结构是最常用的数据结构, 数据元素之间 存在 一对一 的线性关系。 线性结构有两种不同的存储结构,即 顺序存储结构 和 链式存储结构 。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。 链式存储的线性表称为链表,链表中的 存储元素不一定是连续的 ,元素节点中存 ...
分类:
编程语言 时间:
2020-03-09 18:01:53
阅读次数:
57
我的jAVA算法学习日记 · 贪心算法 · leetcode 455 #题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj ...
分类:
编程语言 时间:
2020-01-14 16:09:37
阅读次数:
91
1. 算法思想: 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划实际上是一类题目的总称,并不是指某个固定的算法。动态规划的意义就是通过采用递推(或者分而治之)的策略,通过解决大问题的子问题从而解决整体 ...
分类:
编程语言 时间:
2020-01-01 18:32:19
阅读次数:
101
1.小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = ...
分类:
编程语言 时间:
2019-12-28 11:37:02
阅读次数:
118
学习记录: 一致性Hash算法原理及java实现:https://blog.csdn.net/suifeng629/article/details/81567777 一致性Hash算法介绍,原理,及使用场景:https://blog.csdn.net/cbmljs/article/details/8 ...
分类:
编程语言 时间:
2019-12-17 15:25:56
阅读次数:
96