随笔分类 -  数据结构系列

数据结构及算法解析
摘要:我们知道,数组作为数据存储结构有一定的缺陷。在无序数组中,搜索时低效的;而在有序数组中,插入效率又很低;不管在哪一种数组中删除效率都很低。况且一个数组创建后,它的大小是无法改变的。而链表可能是继数组之后第二种使用得最广泛的通用数据结构了。这里主要来讨论并写一个单链表和双向链表。 顾名思义,单链表只能 阅读全文
posted @ 2019-02-20 10:42 Kevin.ZhangCG 阅读(777) 评论(0) 推荐(0) 编辑
摘要:算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前 阅读全文
posted @ 2019-02-18 09:49 Kevin.ZhangCG 阅读(1745) 评论(2) 推荐(5) 编辑
摘要:栈或者队列是经典的数据结构,虽然平时都在用,但是都是别人封装好的集合,我们不用手写了,但是这些内功,作为开发人员来说是必须要掌握的。 栈 我们知道,在数组中,若知道数据项的下标,便可立即访问该数据项,或者通过顺序搜索数据项,访问到数组中的各个数据项。但是栈和队列不同,它们的访问是受限制的,即在特定时 阅读全文
posted @ 2019-01-30 09:19 Kevin.ZhangCG 阅读(406) 评论(0) 推荐(0) 编辑
摘要:TreeSet是实现Set接口的实现类。所以它存储的值是唯一的,同时也可以对存储的值进行排序,排序用的是二叉树原理。所以要理解这个类,必须先简单理解一下什么是二叉树。 二叉树原理简析 假如有这么一个集合TreeSet<Integer>是[5,11,6,5,23,14] 用二叉树是怎么排序的呢? 二叉 阅读全文
posted @ 2019-01-24 09:36 Kevin.ZhangCG 阅读(568) 评论(0) 推荐(1) 编辑
摘要:曾经有个朋友问我:二叉树可以用来干啥况? 我回答他:可以搜索、可以排序呀? 可是,排序有快速排序,归并排序,查找有二分法,甚至直接遍历查找,我干啥要使用二叉树呢? …… 这位朋友说的是有道理的,二叉树确实在实际中用的比较少,因为有更高级的树,但是二叉树作为一种最基本最典型的排序树,是研究其他树的基础 阅读全文
posted @ 2019-01-21 09:23 Kevin.ZhangCG 阅读(1289) 评论(0) 推荐(1) 编辑
摘要:概述 本文对比较常用且比较高效的排序算法进行了总结和解析,并贴出了比较精简的实现代码,包括选择排序、插入排序、归并排序、希尔排序、快速排序等。算法性能比较如下图所示: 选择排序 种最简单的排序算法是这样的:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元 阅读全文
posted @ 2018-06-14 09:35 Kevin.ZhangCG 阅读(411) 评论(0) 推荐(2) 编辑
摘要:1 概述 本文对比较常用且比较高效的排序算法进行了总结和解析,并贴出了比较精简的实现代码,包括选择排序、插入排序、归并排序、希尔排序、快速排序等。算法性能比较如下图所示: 2 选择排序 选择排序的第一趟处理是从数据序列所有n个数据中选择一个最小的数据作为有序序列中的第1个元素并将它定位在第一号存储位 阅读全文
posted @ 2018-06-13 09:28 Kevin.ZhangCG 阅读(929) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示