算法与数据结构
_又菜又爱学
即使再小的帆,也能远航!
展开
-
1算法学习_线性查找、选择排序、插入排序及优化方案
1. 什么是算法 算法:一系列解决问题的,清晰,可执行的计算机指令 有限性 :在一定的时间执行完成 确定性:不会产生二义性 可行性;这个算法是可以的 输入 输出 举例:比如一道菜,如何做这道菜,做这道菜的过程就是算法 2. 线性查找法 举例:如何在一堆试卷中,找到自己的试卷 /** * @ClassName LinearSearch * @description: 线性查找法 * @author: qsong * @create: 2021-01-27 15:19 * @Version 1.原创 2021-01-29 17:57:51 · 100 阅读 · 0 评论 -
稀疏数组
稀疏数组 1.概述 所谓稀疏数组就是当数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以使用稀疏数组去压缩数据。OK,如果你不明白,那我们来看一个例子。 例如在一个五子棋中,有存盘和续上盘的功能: 分析问题:因为该二维数组的很多默认值是 0,因此记录了很多没有意义的数据 > 稀疏数组: 2.解决问题 思路: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的原创 2021-01-19 14:57:56 · 58 阅读 · 0 评论 -
八大排序之一:冒泡排序
八大排序之一:冒泡排序 基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。 直观表达,每一趟遍历,将一个最大的数移到序列末尾。 1.算法描述 1.比较数组中两个相邻的元素,如果第一个数比第二个数大,就互换他们的位置 2.每一次比较,都会产生一个最大的数,(或者最小的数) 3.下一轮则会少一轮比较 4.依次循环,直到结束 如下图所示: 代码实现: import java.util.Arra原创 2021-01-19 14:57:18 · 92 阅读 · 0 评论