上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。 1、冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会逐渐增大,这物理规律我不作过多解释,大家只需要了解即可。 冒泡算 ...
分类:
编程语言 时间:
2017-12-01 11:46:12
阅读次数:
202
上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处理也不相同,但是本质是都是用来存放数据的的结构,这里我们以J ...
分类:
编程语言 时间:
2017-11-29 10:21:26
阅读次数:
236
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通 ...
分类:
编程语言 时间:
2017-11-27 23:34:04
阅读次数:
123
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家。什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧。 一、字符串 java:String内置类型,不可更改。(如需更改可考虑:Stri ...
分类:
编程语言 时间:
2017-10-23 01:06:57
阅读次数:
289
前言:排序在算法中的地位自然不必多说,在许多工作中都用到了排序,就像学生成绩统计名次、商城商品销量排名、新闻的搜索热度排名等等。也正因为排序的应用范围如此之广,引起了许多人深入研究它的兴趣,直至今天,排序算法已经出现了很多种。本篇博文主要介绍常见的八种排序算法,总得来说,不同的排序算法在不同的场景下 ...
分类:
编程语言 时间:
2017-10-06 00:04:04
阅读次数:
294
今天的突然看集合底层的时候发现了好多算法和数据结构。再次就比较一下和汇总一下。 数据结构分类:线性结构和非线性结构 问题一: 什么是线性和非线性; 我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构; 线性结构包括:数组,链表,队列,栈; 非线性结构包括:树,图 ...
分类:
编程语言 时间:
2017-07-27 20:21:22
阅读次数:
293
stack,中文翻译为堆栈,事实上指的是栈,heap,堆。这里讲的是数据结构的栈,不是内存分配里面的堆和栈。 栈是先进后出的数据的结构,好比你碟子一个一个堆起来。最后放的那个是堆在最上面的。 队列就是排队买苹果。先去的那个能够先买。 栈 public class Stack { private in ...
分类:
编程语言 时间:
2017-07-26 13:46:08
阅读次数:
145
数据结构是指数据在计算机内存空间或磁盘中的组织形式。数据结构包括数组、链表、栈、二叉树、哈希表等等。算法对这些结构中的数据进行各种处理,例如,查找一条特殊的数据项或对数据进行排序。 数据结构 优点 缺点 数组 插入快,如果知道下标,可以非常快地存取 查找慢,删除慢,大小固定 有序数组 比无序数组查找 ...
分类:
编程语言 时间:
2017-06-08 23:46:59
阅读次数:
174
平衡树和非平衡树 如果待插入的关键字是升序的或者降序的,将会产生非平衡树。(都只在根节点的左边或者右边) 当树没有分支时,此时的树就可以看做单链表。 ...
分类:
编程语言 时间:
2017-02-24 15:28:02
阅读次数:
186
栈和队列 栈(后进先出) 栈,只允许访问一个数据项:即最后插入的数据项. 栈可以用来检查括号的匹配问题和解析数学表达式,类似于在编译原理中的使用。 该图片的操作实际上归纳起来:1.读到左分隔符入栈,2.读到右分隔符就和从栈顶弹出来的左分割符匹配,匹配成功,就正常进行。 3.读到一般的字母字符,就过滤 ...
分类:
编程语言 时间:
2017-02-23 12:20:19
阅读次数:
184