Iterator 模式
Iterator 模式 " 一般用于多数据遍历。" "" " 在使用 Java 语言显示数组arr元素时,我们大部分时候使用for循环遍历数组" "" " " "" " 将这里的循环变量i的作用抽象化、通用化后形成的模式,在设计模式中成为Iterator模式。Iterator模式用于在数据集合中按照顺序遍历集合。" Demo:将书(Book)放置到书架(Bo

wxvirus2022年11月19日
大约 3 分钟
插入排序
插入排序 小例子 比如我们打牌的时候,总会将摸到的一张牌自动的插到一个有序的排列的组合里面 1. 初始时手里只有一张牌,且有序 2. 每次(从无序区)摸一张牌,插入到手里已经有牌的正确位置 动画学习 插入排序动画链接 伪代码步骤描述 需要摸n-1次牌; 从摸出来的牌的右侧位置开始循环,判断右侧的是否比自己大,大则往后移,知道找到前面没有比自己大的为止退出循环

wxvirus2022年7月20日
大约 3 分钟
线性表
线性表 " 特点" 比如:我们在小时候出去春游的时候,总是排成一队,我们如何记住自己的位置呢,我们只需要记住自己前面的人即可。 我们也可以很快的请点人数,万一有人走丢,就可以最快时间知道是谁走丢了。 所以线性表就像它的名称一样具有线一样的性质的结构。 " 定义" 线性表:由0 个或多个数据元素组成的有限序列 首先它是一个序列,元素之间有先后顺序; 若元素存在

wxvirus2022年6月30日
大约 2 分钟
leetcode算法题加一
加一 " 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。" 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: " 输入:digits = [1,2,3]" " 输出:[1,2,4]" " 解释:输入数组表示数字 123。" 示例 2: " 输入:digi

wxvirus2022年6月22日
小于 1 分钟
排序算法
冒泡排序 时间复杂度:O(n^2^) 优化 如果是顺序的,就减少一次循环 选择排序思路 1. 先从列表中遍历得到一个最小的,拿出来备用 2. 再在剩下的列表里再继续遍历得到一个最小的,依次拿出来,但是存放在哪里呢,可以放到一个新的列表 关键步骤 一趟排序记录最小的数,放到第一个位置; 再一趟排序记录列表无序区最小的数,放到第二个位置; 。。。依次类推; 算法

wxvirus2021年11月3日
大约 3 分钟
查找算法
查找 " 在一些数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程。" 案例: 列表查找(线性表查找):从列表中查找指定元素 输入:列表、待查找元素; 输出:元素下标(未找到元素时一般返回 None 或-1); python内置列表差汇总啊函数:index() 顺序查找 - Linear Search " 也叫线性查找,从列表第一个元素开始,顺序

wxvirus2021年10月22日
大约 2 分钟
算法基础学习

简单判断算法的时间复杂度

  • 确定问题规模 n

  • 循环减半过程 logn

  • k 层关于 n 的循环 nk(这边是 n 的 k 次方,可能渲染上有问题)

  • 复杂情况:根据算法的执行过程判断

  • 用常数 1 取代运行时间中的所有加法常数

  • 在修改后的运行次数函数中,只保留最高阶项

  • 如果最高阶项存在且不是 1 ,则去除与这个项相乘的常数

  • 得到的最后结果就是大O


wxvirus2021年10月12日
大约 7 分钟