数据结构
数据结构
鲲志说
前某里、现某区块链 后端研发,国内互联网圈划水博主、阿里云专家博主、CSDN博客专家、CSDN内容合伙人、CSDN杭州城市社区主理人、COC技术社区年度优秀主理人、坚果派成员、AI电影共创社杭州核心成员。仅在国内的CSDN平台,博客文章浏览量260万+。 博客包括:Java、区块链、云原生、数据库、算法、计算机基础、python、前端、Linux、go、网络等相关使用及进阶知识。欢迎沟通交流,合作共赢。
展开
-
计算机基础-------硬盘、内存、cpu的理解
计算机存储由硬盘–>内存–>cpu硬盘:其中硬盘包括固态硬盘和机械硬盘固态硬盘存取速度快,因为固态硬盘使用电信号读取机械硬盘存取速度慢,因为机械硬盘使用机械读取内存:内存有多级缓存,可以加快cpu读取速度CPU:CPU处理速度快,读取速度慢,CPU读取数据是kb级别的,但是CPU处理速度非常快,时钟周期为单位,我们可以查看原创 2019-01-16 16:10:24 · 2458 阅读 · 0 评论 -
排序:Java实现插入排序原理及代码注释详解
插入排序1.简介:插入排序是一种简单直观且稳定的排序算法。它的最坏时间复杂度为O(n2),最好时间复杂度为O(n),平均时间复杂度为O(n2),它是稳定排序。基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。2.算法原理:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中...原创 2019-07-17 02:21:44 · 460 阅读 · 0 评论 -
排序:Java实现快速排序原理及代码注释详解
快速排序1.简介:快速排序是对冒泡排序的一种改进。它的最坏时间复杂度为O(n2),最好时间复杂度为O(nlogn),平均时间复杂度为O(nlogn),它是不稳定排序。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.算法原理:...原创 2019-07-15 22:00:02 · 484 阅读 · 0 评论 -
排序:Java实现选择排序原理及代码注释详解
选择排序1.简介:选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。它的最坏、最好、平均时间复杂度均为为O(n2),选择排序是不稳定的排序方法。2.算法原理:首先在未排序序列中找到最小(...原创 2019-07-15 20:34:48 · 599 阅读 · 0 评论 -
排序:Java实现冒泡排序原理及代码注释详解
冒泡排序1.简介:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。它的最坏时间复杂度为O(n2),最好时间复杂度为O(n),平均时间复杂度为O(n2),它稳定排序。2.算法原理:1...原创 2019-07-15 16:32:36 · 3258 阅读 · 0 评论 -
排序:Java实现大顶堆和二叉树的广度优先遍历原理及代码注释详解
附有过程详细思路图解,最后有整体实现的代码一、堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序。1.堆排序简介堆是一个近似完全二叉树(可以简单理解为从根到最后一层,只有最后一层可以存在二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连...原创 2019-07-11 02:08:39 · 511 阅读 · 0 评论 -
数据结构:线性表中顺序表和单链表的比较
看到一道选择题是线性表中顺序表与单链表的区别对比,感觉对于这二者的区别了解不是很全面,决定来一波总结。至于什么是线性表,可以参考该博客。线性表中顺序表和单链表的比较一、什么是顺序表和单链表顺序表:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。单链表:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。...原创 2019-03-16 16:54:14 · 3156 阅读 · 0 评论 -
数据结构:线性结构和非线性结构的理解
我们知道数据结构是计算机存储、组织数据的方式。常见的数据结构分类方式如下图:我们这里主要说一下线性结构和非线性结构1. 线性结构线性结构是什么?数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。线性结构是一个有序数据元素的集合。线性结构特点:线性结构有唯一的首元素(第一个元素)线性结构有唯一的尾元素(最后一个元素)除首元素外,所有的元素都有唯一的“前驱”...原创 2019-03-02 22:54:09 · 28841 阅读 · 1 评论 -
数据结构 : 数组 / 链表 / 二叉排序树增删改查的时间复杂度解析
我们先看一下时间复杂度的概念: 在计算机科学中,算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。接下来我们对比一下数组 / 链表 / 二叉树增删改查的时间复杂度一.数组数组长...原创 2019-02-27 23:48:42 · 7635 阅读 · 1 评论 -
计算机基础-----不同磁道扇区数是否相同?空硬盘写入数据填充磁道和扇区的顺序是什么?
前几天了解了一下硬盘,对硬盘中的磁道和扇区的理解还不是很清楚,又查找了一些资料,对于硬盘中的结构有了更深的了解,今天总结一下不同磁道扇区数是否相同?相信不止我一个人对磁道中的扇区数是否相同有疑问,而且通过网上查阅也是观点不同,我们先看看维基百科和百度百科对于扇区两个矛盾的介绍维基百科:扇区磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导...原创 2019-01-18 15:10:31 · 2642 阅读 · 0 评论 -
计算机基础-------磁盘数据存储方式的解析
硬盘存储数据我们知道硬盘读取信息是通过机械臂的摆动和盘片转动找到所需要的数据首地址所在地址块进行读取。我们先说一下磁道上的块,这里需要引出一个名词-----簇:“簇”是 DOS 进行分配的最小单位。当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,而是占有整个一簇。DOS 视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘参数块(...原创 2019-01-16 23:15:54 · 4876 阅读 · 0 评论 -
数组常用方法总结(部分方法利用了工具类)
今晚回顾了一下数组的常用方法,撸了一些代码总结一下,感觉又收获不少直接上代码吧,主要是便于自己复习和记忆创建数组的三种方法: //创建数组的第一种方法 int[] arr=new int[6]; //创建数组的第二种方法 int[] a = {23, 5, 65, 23, 45, 2, 4, 34, 8}; //创...原创 2019-08-24 00:29:34 · 491 阅读 · 1 评论