数据结构与算法
惊鸿照影_弈尘
这个作者很懒,什么都没留下…
展开
-
下压栈
能够动态调整数组的大小的实现import java.util.Iterator;public class ResizingArraySizeStack<Item> implements Iterable<Item> { private int N = 0; private Item[] a = (Item[]) new Object[1]; //判断是否为空 public boolean isEmpty(){ return .原创 2020-06-13 11:53:55 · 143 阅读 · 0 评论 -
算法图解1.3-大O表示法
大O表示法是一种特殊的表示法,指出了算法的速度有多快。本节介绍大O表示法是什么,并使用它列出一些最常见的算法运行时间。算法的运行时间以不同的速度增加示例:Bob要为NASA编写一个查找算法,这个算法在火箭即将登陆月球前开始执行,帮助计算着陆地点。这个示例表明,两种算法的运行时间呈现不同的增速。Bob需要做出决定,是使用简单查找还是二分查找。使用的算法必须快速而准确。一方面,二分查找的速度更快。Bob必须在10秒钟内找出着陆地点,否则火箭将偏离方向。另一方面,简单查找算法编写起来更容易,因此出现.原创 2020-06-06 11:00:40 · 609 阅读 · 0 评论 -
算法图解1.2-二分查找
假设要在电话簿中找一个名字以K打头的人,(现在谁还用电话簿!)可以从头开始翻页,直到进入以K打头的部分。但你很可能不这样做,而是从中间开始,因为你知道以K打头的名字在电话簿中间。二分查找是一种算法,其输入的是一个有序的元素列表。如果查找的元素,包含在列表中,二分查找返回其位置,否则返回null比如查找1-100之间的数字,第一中使用简单查找,那么只能依次按照顺序进行查找每个数字,直至找到。如果目标数字是99那么就需要从1-99查找99次。同理使用二分查找来完成这个目标,第一次只需要找到50然后跟目标原创 2020-06-02 23:45:31 · 427 阅读 · 0 评论 -
时间复杂度-空间复杂度
算法:指用来操作数据,解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终的结果是一样的,但是在整个过程中消耗的资源和时间往往会因为算法的不同而存在比较大的差异。那么我们怎么来衡量解决同样问题的不同算法的优劣呢?答:主要还是两个方面,一个是算法占用的时间,另一个是算法占用的空间,借助这两个维度来考量算法。时间维度:是指执行当前算法所消耗的时间,通常是用【时间复杂度】来描述空间维度:指执行当前算法需要占用多少内存空间,通常是用【空间复杂度】来描述时间复杂度大O表示法常见的时间.转载 2020-05-31 11:18:08 · 137 阅读 · 0 评论 -
数据结构与算法:封装自己的面向对象数组
文章目录数组在一个数组中新增一个元素在特定的索引位置新增一个数组元素从数组中删除指定索引的元素修改指定位置元素的值查找指定位置的值顺序查找测试代码代码:数组所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。本文就是在数据结构里自己封装的数组,实现了数组的增删改查。在一个数组中新增一个...原创 2019-04-28 21:55:37 · 328 阅读 · 0 评论 -
数据结构与算法:数组中的二分法查找
使用二分法查找数组中的元素package com.study.array.test;public class Control { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7,8,9,10}; //目标元素 int target = 4; ...原创 2019-04-29 13:34:59 · 293 阅读 · 0 评论