数据结构与算法
文章平均质量分 88
辰砂tj
为明天做最好的准备
展开
-
循序渐进学习时间复杂度
一、浅谈算法学习软件开发这么多年,常常听到程序=数据结构+算法,但是很多人对这句话提出质疑,因为实际项目开发的时候大部分人是做螺丝钉的角色,而且大部分甘于做螺丝钉的角色,就会认为实际项目,只是完成业务开发而已,去哪都是增删改查,数据结构根本用不到。我认为,算法和基本的数据结构是非常重要的,对于一个合格的程序猿来说,有时候我们没有涉及到,只是别人把需要的事情都给我们做了,比如的java版本的ha...原创 2018-11-26 15:24:52 · 375 阅读 · 0 评论 -
循序渐进学习数据结构之线性表
一、思维导图二、线性表的基本概念1.名词解释:**线性表:**由n个数据特性相同的元素构成的有限序列,有顺序存储和链式存储两种表示形式。空表:线性表中元素的个数n=0的表。线性表的链式存储结构:特点是用一组任意的存储单元存储线性表的数据元素,包括两个域,其中存储数据元素信息的域称为数据域,存储直接后继存储位置的域称为指针域。循环单链表:是另一种形式的链式存储结构。它的特点是表中最后...原创 2018-11-26 15:22:32 · 229 阅读 · 0 评论 -
经典排序算法整理
title: 数据结构之排序tags: 数据结构与算法之美author: 辰砂一、引言排序的算法在数据结构中占据很大的位置,包括考研的时候都是非常热门的考点,java的语言里面封装了一些的排序算法。比如Arrays.sort()这个工具类的方法里面的实现就是快速排序的思想。这里对排序各类算法做一个总结的概述,后面会针对常见的排序算法的思想,实现,时间复杂度写一系列的相关的文章,由于知...原创 2018-11-07 22:07:08 · 94 阅读 · 0 评论 -
二分查找(折半查找)
二分查找(折半查找)title: 二分查找tags: 数据结构与算法之美author: 辰砂一、简介二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 (解释:所以二分查找的时候一定要是有序的数组)二、过程若k==R[mid].key,查找成功若k<R[mid].key...原创 2018-11-12 23:13:22 · 854 阅读 · 0 评论 -
直接插入排序
直接插入排序title: 直接插入排序tags: 数据结构与算法之美author: 辰砂直接插入排序1.排序过程2.基本步骤3.算法分析4.完整代码示例1.排序过程名词解释:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序例(13,6,3,31,9,27,5,11)###【13】, 6...原创 2018-11-12 23:12:30 · 124 阅读 · 0 评论 -
冒泡排序
冒泡排序title: 冒泡排序tags: 数据结构与算法之美author: 辰砂1.排序过程起泡排序(Bubble Sort):首先将第一个记录的关键字同第二个记录的关键字进行比较,或为逆序,则交换,依此类推,直至第n-1个记录和第n个记录的关键字进行比较为止。判别起泡排序结束的条件应该是在一趟排序过程中没有进行交换记录的操作。基本思想:每趟不断将记录两两比较,并按“前小后大” 规...原创 2018-11-12 23:11:30 · 100 阅读 · 0 评论 -
数据结构之B+树
数据结构之B+树title: 数据结构之B+树date: 2018-11-04 20:39:00tags: 数据结构与算法之美一、 浅谈B-树索引1.B-树的特性一棵m阶B-树,或者是空树,或者是满足以下性质的m叉树根结点至少有两个分支;除根以外的非叶结点,每个结点包含分支数范围[[m/2],m],即关键字字数的范围是[[m/2]-1,m-1],其中[m/2]表示取大于等于m...原创 2018-11-04 21:03:59 · 556 阅读 · 0 评论 -
数据结构之图的关键路径
title: 数据结构之图的关键路径tags: 数据结构与算法之美一、AOE和AOV网1.AOE网AOE-网:指用边表示活动的网,是一个带权的有向无环图,其中,顶点表示事件弧表示活动,权表示活动持续的时间,通常一个AOE-网可用来估算工程的完成时间。2.AOV网指用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶点表示活动的网。AOV网具有以下几个性质:(1) 只有在某顶点...原创 2018-11-06 11:18:43 · 3453 阅读 · 0 评论 -
数据结构绪论
绪论1.什么是数据结构一般来说,用计算机解决一个具体问题时候,首先要具体问题抽象出一个适当的数学模型,然后设计算法,编程序,进行调试,直到得到最终的答案。现在高级编程语言会将一些底层需要的数据结构进行封装,比如java的hashmap,以前的1.7版本,采用了数组和链表的组合方式,为了更加的追求效率,采用了红黑树的方式,这里面也是数据结构的运用,导致了效率的增强。再比如redis里面的常见的...原创 2018-10-26 13:21:05 · 151 阅读 · 0 评论 -
串的模式匹配算法之kmp
title: 串的模式匹配算法之kmpdate: 2018-10-14 10:39:19tags: 数据结构与算法之美author: taojian1.引言首先我们需要了解串的模式算法目的:确定主串中所含子串第一次出现的位置(定位);常见的算法种类:BF算法(又称古典的、经典的、朴素的、穷举的),KMP算法(特点:速度快)。网上有很多帖子,博客写的都特别好,这篇文章也是对自己的一个...原创 2018-10-17 17:36:01 · 580 阅读 · 0 评论 -
循序渐进学习栈和队列
一、栈1.栈的定义:是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义称为栈顶,相应地,表头端称为栈底。栈的修改是按后进先出的原则进行的,因此又称后进先出表。解释:栈是一个很简单的数据结构,但是好多人不能理解它的重要的特性,即只能在栈顶的位置进行操作,可以理解栈是一个水杯,只能在杯口倒水或者喝水。2.栈的定义和特点:1.定义:只能在表的一端(栈顶)进行插入...原创 2018-11-27 16:42:34 · 140 阅读 · 0 评论