
数据结构
文章平均质量分 53
Tailyou
这个作者很懒,什么都没留下…
展开
-
【数据结构】-线性表的链式存储结构
引言:由于线性表的顺序存储结构在插入和删除时需要大量移动数据元素,从而引入线性表的链式存储结构。线性表的链式存储结构:用一组任意的存储单元(可以连续也可以不连续)存储线性表的数据元素。为了表示数据元素ai和其直接后继ai+1之间的逻辑关系,对ai来说,除了存储其本身的数据信息外,还需要存储其直接后继的存储位置。这两部分信息组成数据元素ai的存储映像(结点)。它包含两个域:其中存储数据元素信息的域称为原创 2015-08-25 12:28:10 · 1013 阅读 · 0 评论 -
【数据结构】-归并排序,基数排序
归并排序思想:基数排序思想:原创 2015-09-01 21:21:52 · 524 阅读 · 0 评论 -
【数据结构】-直接插入排序、希尔排序Java实现
直接插入排序:将一个记录插入到已排好的有序序列中,从而得到新的、记录数加1的有序序列。 稳定性:稳定; 时间复杂度:O(n*n)希尔排序:先将整个待排记录分成若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。 稳定性:不稳定; 时间复杂度:O(nlogn)~O(n*n)package org.iti.algorithm;import java.u原创 2015-08-26 17:34:32 · 525 阅读 · 0 评论 -
【数据结构】-常用排序算法对比
常用排序算法时间复杂度,空间复杂度,稳定性对比:原创 2015-09-02 15:00:16 · 587 阅读 · 0 评论 -
【数据结构】-树和二叉树
一、树的定义和基本术语树(Tree)是n(n>=0)个结点的有限集。在一棵非空的树中: 1)有且仅有一个特定的结点称为根(Root); 2)当n>1时,其余结点可分为m个互不相交的有限集T1,T2,…Tm,其中每一个集合本身也是一棵树,并称为根的子树(SubTree)。树的结点包含一个数据元素和若干指向其子树的分支。 结点拥有的子树数称为结点的度; 度为0的结点称为叶子(终端结点); 度不原创 2015-08-25 16:52:07 · 678 阅读 · 0 评论 -
【数据结构】-基本概念和术语
数据(data):对客观事物的符号表示,在计算机学科中指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。 数据对象:性质相同的数据元素的集合,是数据的子集。数据结构:相互之间存在一种或多种特定关系的数据元素的集合。 数据元素都不是孤立存在的,在他原创 2015-08-24 21:54:29 · 1022 阅读 · 1 评论 -
【数据结构】-冒泡排序法Java实现
原理:通过交换,一趟冒泡排序后,使关键字最大的记录放到最后一个记录的位置上。第二趟冒泡排序后,将第二大的关键字放到倒数第二个记录的位置上,依此类推。 时间复杂度:O(n^2) 稳定性:稳定排序 public static void main(String[] args) { int[] array = genArray(8); System.out.prin原创 2015-08-26 16:43:29 · 844 阅读 · 0 评论 -
【数据结构】-树和森林
一、树的存储结构1)双亲表示法 以一组地址连续的空间存储树的结点,同时在结点中附设一个指针域指示其双亲结点的位置。 这种存储结构利用每个孩子只有一个双亲的性质,求结点的双亲可以在常量时间内实现,但求结点的孩子时需要遍历整个结构。2)孩子表示法 树中每个结点可能有多个孩子,所以结点除了一个数据域外,还需要有多个指针域指向孩子结点。 有如下两种结点格式: 同构结点:假设d为树的度,则每一个结点原创 2015-08-26 14:19:33 · 2901 阅读 · 0 评论 -
【数据结构】-简单选择排序Java实现
基本思想:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小(大)的记录,并和第i个记录交换。 第一趟(i=1):从n个记录中选择最小(大)的记录,并和第1个记录交换; 第二趟(i=2):从n-1个记录中选择最小(大)的记录,并和第2个记录交换; 依次类推。 稳定性:不稳定; 时间复杂度:O(n*n);package org.iti.algorithm;import java原创 2015-08-26 17:09:54 · 777 阅读 · 0 评论 -
【数据结构】-栈和队列
一、栈的基本概念栈(stack):限定在表尾进行插入和删除操作的线性表。 栈顶(top):允许进行插入和删除操作的一端,又称表尾。 栈底(bottom):固定端,又称表头。 空栈:不含元素的空表称为空栈。 插入元素的操作称为入栈(压栈)。 删除元素的操作称为出栈(弹栈)。 顺序存储的栈称为顺序栈。 链式存储的栈称为链栈。设栈S=(a1,a2,...an),则a1称为栈底元原创 2015-08-25 13:07:36 · 605 阅读 · 0 评论 -
【数据结构】-串
一、串的基本概念 串(字符串):是由零个或多个字符组成的有限序列,一般记为: s=‘a1a2…an’(n>=0) s是串名,单引号括起来的是串的值,ai(1<=i<=n)可以是字母、数字或其他字符。 串中字符的数目n称为串的长度; 长度为零的串称为空串; 串中任意个连续的字符组成的子序列称为子串; 包含子串的串相应的称为主串; 字符在序列中的序号称为该字符在串中的位置; 子串在主串原创 2015-08-25 14:37:52 · 1049 阅读 · 0 评论 -
【数据结构】-线性表的顺序表示和实现
线性表:最常用且最简单的一种数据结构,是n个数据元素的优先序列。线性表是一个相当灵活的数据结构,它的长度可以根据需要增长或缩短,即对线性表的数据元素不仅可以访问,还以进行插入和删除等。线性表的顺序表示:用一组地址连续的存储单元依次存储线性表的数据元素。 线性表的这种机内存储结构称作线性表的顺序存储结构。 线性表的顺序存储结构是一种随机存取结构,表中的任一数据元素都可以随机存取。存取操作:对于采用原创 2015-08-25 10:41:02 · 1038 阅读 · 0 评论 -
【数据结构】-快速排序Java实现
快速排序是对冒泡排序的一种改进。 基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后递归对这两部分记录进行排序,最终达到整个序列有序。 稳定性:不稳定; 时间复杂度:O(logn)-O(n*n)package org.iti.algorithm;import java.util.Random;/** * * @author Tail原创 2015-08-26 17:52:51 · 444 阅读 · 0 评论