![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
原映雪
这个作者很懒,什么都没留下…
展开
-
java动态数组对其时间复杂度浅析(均摊复杂度和防止复杂度的震荡策略)
数组最大的优点:快速查询。数组最好应用于“索引有语意”的情况。基于java的数组,二次封装数组。我们先来写一个有CRUD的数组,并对其进行优化,然后分析时间复杂度增删改查public class Array { private int[] data; private int size; // 构造函数,传入数组的容量capacity构造Array pu...原创 2019-07-12 22:48:08 · 307 阅读 · 0 评论 -
栈的实现原理(含有效的括号的题解)
栈(Stack)是一种线性结构相比数组,栈对应的操作是数组的子集只能从一端添加元素,也只能从一端取出元素这一端叫做栈顶后进先出(LIFO)的数据结构应用无处不在Undo操作(撤销) 程序调用的系统栈栈的实现Stack<E>void push(E) E pop() E peak() int getSize() boolean is...原创 2019-07-13 11:09:10 · 142 阅读 · 0 评论 -
O(n^2)排序算法优化策略以及希尔算法浅析。
插入排序import java.util.*;public class InsertionSort{ // 我们的算法类不允许产生任何实例 private InsertionSort(){} public static void sort(Comparable[] arr){ int n = arr.length; for (in...原创 2019-07-12 22:51:46 · 227 阅读 · 0 评论 -
归并排序Nlog(N)浅析及优化策略
归并排序法https://www.luogu.org/problemnew/show/P1966火柴排序的题,可用归并来做。学完归并找来看了一下这道题。归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序...原创 2019-07-13 17:19:05 · 251 阅读 · 0 评论 -
数组队列和循环队列比较及性能测试方法
队列Queue相比数组,栈对应的操作是数组的子集先进先出(FIFO)的数据结构数组队列Queue<E>void enqueue(E) O(1) E dequeue() O(n) E getFront() O(1) int getSize() O(1) boolean isEmpty() O(1)循环队列用front和tail来指,这样dequeu...原创 2019-07-13 17:23:10 · 291 阅读 · 0 评论