![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
记录数据结构与算法的学习
TalkingCpp
这个作者很懒,什么都没留下…
展开
-
Java实现二分查找算法
Java实现二分查找public class BinarySearching { public static int searching(int[] arr, int key) { int mid; int low = 0; int high = arr.length - 1; while (low < high) { mid = (low + high) / 2; if (arr原创 2020-08-08 14:04:00 · 93 阅读 · 1 评论 -
数据结构之链表学习笔记
提起链表,我们往往会同时提到数组,先说一下数组,在各种编程语言中都有涉及到,是一种常见的数据结构。数组是一种线性存储结构,元素类型相同,在创建数组的时候,元素类型就已经被定义。数组的优点:读取速度快,因为数组的元素读取是用下标来确定的;数组的缺点:增删速度慢,长度事先被定义,需要连续的内存地址来存放这个数组。有了对比,那么现在来学习一下链表的特点。链表链表是什么呢,和名字很像,就是一个链式的表,每个元素又都是一个节点,是一种离散存储的线性结构,在内存中,节点们离散分配,彼此之间通过指针连接,每个原创 2020-07-05 23:10:16 · 114 阅读 · 0 评论 -
递归算法及其常见的运用
关于递归,百度百科是这样说的:程序调用自身的编程技巧称为递归(recursion)。简单来说就是,方法:“我调用我自己”。其实递归和循环很像,都是重复地去做某件事,循环可以写成递归,但递归不一定能写成循环,因为终止递归的条件需要找到,是一个充分不必要条件。递归的条件1.递归的终止条件(也就是什么时候达到某一个条件可以结束了);2.得到递归的表达式。下面举几个例子。使用递归做求和运算有一个经典题目,1+2+3+...+100的和是多少,记得小学的时候学到高斯用了巧妙地方法惊呆了他的数学老师,我还感原创 2020-07-04 22:59:41 · 623 阅读 · 0 评论 -
排序算法之选择排序
Java实现选择排序选择排序(Selection Sort)是一直简单的排序算法,原理是遍历整个集合或数组,选出最小(或最大)的那个元素,把他放在序列的起始位置,然后对剩下的元素进行重复操作,直到所有的元素都被排序。选择排序是一种不稳定排序,再出现相同元素的时候,会出现交换元素起始位置的情况。所谓不稳定的排序,就是排序前两个相同元素的前后顺序和排序后顺序不同,如果相同就是稳定的排序。稳定排序的好处是,如果涉及到同一个元素的不同属性排序,可以不破坏元素的某个相同属性位置,从而进行其他属性的排序。实现思原创 2020-07-03 11:10:54 · 114 阅读 · 0 评论 -
排序算法之冒泡排序
Java实现冒泡排序冒泡排序(Bubble Sort):是一种排序的算法, 它重复地访问要排序地数列,一次比较两个元素,如果顺序是错误的,就互相交换,直到没有再进行交换,排序完成。因为元素会一个一个漂浮到集合的顶部,所以叫冒泡排序。实现思路1.定义一个 i ,i 与 i + 1 进行比较了,如果i > i + 1,就互相交换;2.i++,直到 i < n - 1,其中 n 为集合的元素个数。代码实现这里定义一个数组。int[] arr = {5, 9, 8, 11, 15, 3,原创 2020-07-03 01:04:38 · 94 阅读 · 0 评论