![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法分析
pinazhang
一起学习!
展开
-
java数据结构与算法分析:冒泡排序
冒泡排序(默认是升序) 目标: 将数组元素按照从小到大的顺序排列。 思路:大的数“下沉”,小的数“上浮”。 比较相邻的两个元素,将大的数放在右边,小的数放在左边。 第一趟循环:比较第一个和第二个数,如果第一个数小于第二个数,顺序不变,反之就交换两个数的位置;接着比较第二和第三个数,方法同上,直到比较完最后两个数,将大的数放在右边,小的放左边。 结果:第一趟完成后,最后一个数就是该数组元素最...原创 2019-01-22 10:30:40 · 339 阅读 · 0 评论 -
java数据结构与算法分析:快速排序(图文并茂)
快速排序(默认升序) 快速排序,是一种速度最快、效率最高的排序算法。主要是由于非常精炼和高度优化的内部循环。 时间复杂度为:O(nlogn)~O(n^2) 空间复杂度为:O(logn)~O(n) 目标: 将一个数组按照从大到小的顺序重新排列。 思路: 在需要排序的数组中选择一个基准值key(一般选择第一个元素),通过第一次循环之后,将数组分为两部分:比key大的,放在key的右边;比key...原创 2019-01-22 19:56:34 · 777 阅读 · 1 评论 -
抽象数据类型
数据结构中有一个非常重要的概念:即抽象数据类型(Abstract Data Type,ADT)。 几点说明: 抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。 抽象数据类型需要通过固有数据类型来实现。 抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。 对一个抽象数据类型进行定义时,必须给出它的名字及各...原创 2019-04-15 20:25:33 · 9230 阅读 · 0 评论 -
表、链表简介
表 ADT 我们将处理形如 A0A_0A0 ,A1A_1A1,A2A_2A2…,AN−1A_{N-1}AN−1的一般的表。我们说这个表的大小是N。我们将大小为0的特殊的表称为空表(empty list)。 表的简单数组实现 数组是由固定容量创建的,这也是数组的一个缺点。 如果发生对表的一些插入和删除的操作,特别是对表的前端进行,那么数组就不是一个好的选择。 简单链表 链表是由一系列的...原创 2019-04-15 20:57:08 · 150 阅读 · 0 评论 -
ArrayList和LinkedList的区别以及部分方法源码
ArrayList和LinkedList的区别 在查找API可以发现,ArrayList类和LinkedList类都在java.util包中。下面介绍两者的区别和适用的场景。 ArrayList类和LinkedList类区别简介:(看源码) 1. ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表结构。 而之所以称为动态数组,是因为Arraylist在数组元素超过...原创 2019-04-20 21:27:58 · 141 阅读 · 0 评论 -
java集合框架图
原创 2019-04-17 11:09:53 · 62 阅读 · 0 评论