![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构Java
文章平均质量分 55
记载数据结构的知识点
@Yolo丶
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分所有数据要小,然后按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 排序原理: 在数组中选一个基准数(通常为数组第一个); 将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边; 对于基准数左、右两边的数组,不断重复以上两个过程,直到每个子集只有一个元素,即为全部有序。 需求: 排序前:{6,1,2,原创 2021-01-31 18:05:11 · 84 阅读 · 0 评论 -
归并排序
归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治的思想。将已有序的子序列合并,得到完全有序的序列,既先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,成为二路归并 需求: 排序前:{8,4,5,7,1,3,6,2} 排序后:{1,2,3,4,5,6,7,8} 排序原理: 1、尽可能的一组数据拆分为两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。 2、将相邻的两个子组进行合并成一个有序的大组 3、不断的重复步骤2,知道最终只有原创 2021-01-31 18:04:35 · 108 阅读 · 0 评论 -
希尔排序
希尔排序 1、排序介绍 a、需求: 排序前:{9,1,2,5,7,4,8,6,3,5} 排序后:{1,2,3,4,5,5,6,7,8,9} b、排序原理: 1、选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组; 2、对分好组的每一组数据完成插入排序; 3、减小增长量,最小减为1,重复第2部和第三部操作。 注意: 增量一般选取方法: 第一次的增量为:数组的长度 / 2,此后每次增量为为上一次增量的一半,直到增量缩小到1 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im原创 2021-01-31 18:03:53 · 220 阅读 · 1 评论 -
插入排序
插入排序 插入排序是一种简单直观且稳定的排序算法。 插入排序概述: 需求: 排序前:{4,3,2,10,12,1,5,6} 排序后:{1,2,3,4,5,6,10,12} 排序原理: 1、把所有元素分为两组,已经排序的和未知排序的; 2、找到未排序的组中的第一个元素,向已经排序的组中进行插入 3、倒叙遍历已经排序的元素,依次和带插入的元素进行比较,直到找到一个元素小于等于带插入元素,那么就把待插入元素放到这个位置,其他的元素后移一位; 图解: [外链图片转存失败,源站可能有防盗链机制,建议将图片原创 2021-01-23 15:53:06 · 83 阅读 · 0 评论 -
冒泡排序
冒泡排序 1、冒泡排序基本算法实现 a、主要思想 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u9iXBfXW-1611149444912)(C:\Users\29455\AppData\Roaming\Typora\typora-user-images\1611147477647.png)] b、代码实现 public static void main(String[] args) { int[] a = {1,5,9,8,7,4}; fo原创 2021-01-20 21:31:11 · 69 阅读 · 0 评论 -
算法空间复杂度分析
算法空间复杂度分析 1、Java中的常见内存占用 a、基本数据类型内存占用 数据类型 占用字节 int 4 short 2 long 8 byte 1 float 4 double 8 boolean 1 char 2 2、计算机访问内存的方式是一次一个字节 3、一个引用类型(机器地址)需要8个字节 4、创建一个对象,比如new Date(),除了对象内部存储的数据(例如年月日等信息)占用的内存,该对象也占用内存,每个对象的自身内存占用是16个字节,用来保存对原创 2021-01-20 21:30:35 · 381 阅读 · 0 评论 -
算法时间复杂度分析
算法时间复杂度分析 大O记法 定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的量级。算法的时间复杂度,就是算法时间的量度,记做:T(n) = O(f(n))。它表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度,其中f(n)是问题规模n的某个函数。 用大写O()来体现算法时间复杂度的记法,我们称之为大O记法。一般情况下,随着输入规模n的增大,T(n)增长最慢的算法为最原创 2021-01-20 21:30:00 · 347 阅读 · 0 评论 -
数据结构和算法概述
数据结构和算法概述 1、数据结构 1)、概念: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科 2)、分类: 传统上数据结构分为逻辑结构和物理结构两大类。 1、逻辑结构 分类: a、集合结构:集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他关系。 b、线性结构:树形结构中的数据元素之间存在一对一的关系。 c、树形结构:树形结构中的数据元素之间存在着一对多的层次关系。 d、图形结构:图形结构的数据元素是多对多的关系。 2、物理结构 分类: a原创 2021-01-20 21:29:30 · 46 阅读 · 0 评论