数据结构
HelloZEX
[2018·10·18]所谓核心竞争力,永远是自身的实力!
[2022·4·4]我需要换一个大脑!
展开
-
排序算法浅识
排序说简单也简单,说复杂某些地方也是有些绕,这里做做笔记,帮助自己记忆和理解常接触的排序算法到底是什么鬼!什么是排序: 其实就是排大小啊大佬!!排序的稳定性!为何排序的稳定性很重要?在初学排序时会觉得稳定性有这么重要吗?两个一样的元素的顺序有这么重要吗?其实很重要。在基数排序中显得尤为突出,如下:原创 2017-11-06 15:51:11 · 394 阅读 · 0 评论 -
最小生成树算法-克鲁斯卡尔和普利姆
http://www.cnblogs.com/qianbixin/p/5005161.htmlhttp://www.cnblogs.com/yoke/p/6697013.html学习最小生成树算法之前我们先来了解下 下面这些概念:树(Tree):如果一个无向连通图中不存在回路,则这种图称为树。生成树 (Spanning Tree):无向连通图G的一个子图转载 2017-11-06 10:30:58 · 1448 阅读 · 0 评论 -
图之最短路径算法-Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法
代码未验证!!!!!Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问转载 2017-11-06 10:39:50 · 841 阅读 · 0 评论 -
【数据结构】完美二叉树, 完全二叉树和完满二叉树
完美二叉树, 完全二叉树和完满二叉树本文出处:http://www.cnblogs.com/idorax/p/6441043.html树在数据结构中占有非常重要的地位。本文从树的基本概念入手,给出完美(Perfect)二叉树,完全(Complete)二叉树和完满(Full)二叉树的区别。如果学习过二叉树,但是对这三种二叉树并没有深入的理解,或者完全被国产数据结构教科书所误导(只听说过满二叉树和完全...转载 2018-07-16 10:53:20 · 1305 阅读 · 0 评论 -
【数据结构】(树总结)二叉树搜索/查找树
承接之前的『树』,本文将目标特别锁定在『查找树』;这里整理出我遇到的各种形式的查找树,以后可能会不定期更新,以尽可能多的囊括所有种类的查找树;虽然标题为“搜索树”,但是我还是习惯叫“查找树”,以下也将沿袭着一传统学习『查找树』心里面始终要有一个意识:对于查找树而言『平衡』很重要普通查找树(BST)查找树的初始化(返回根结点)查找树的查找(线性下降,不需要遍历)哈夫曼树(Huffman Tree)...转载 2018-07-16 14:48:10 · 6468 阅读 · 0 评论 -
【数据结构】堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组...转载 2018-07-13 17:07:47 · 397 阅读 · 0 评论 -
【数据结构】静态链表与动态链表
静态链表是用数组实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配大小。动态链表是用申请内存函数(C是malloc,C++是new)动态申请内存的,所以在链表的长度上没有限制。动态链表因为是动态申请内存的,所以每个节点的物理地址不连续,要通过指针来顺序访问。#define _CRT_SECURE_NO_DEPRECATE#define _CRT_SECURE_CPP_OVE...原创 2018-07-13 19:36:19 · 793 阅读 · 0 评论 -
【数据结构】广义表
一、广义表的定义 广义表简称表,它是线性表的推广。一个广义表是n(n>=0)个元素的一个有限序列,当n=0时称为空表。在一个非空的广义表中,其元素可以是某一确定类型的对象,这种元素被称为单元素;也可以是由单元素构成的表,这种元素被称为子表或表元素。显然,广义表的定义是递归的,广义表是线性表的递归数据结构。 社ai为广义表的第i个元素,则广义表的一般表示与线性表相同。...转载 2018-07-13 19:40:49 · 1232 阅读 · 0 评论 -
【数据结构】三元组
三元组的表示(1)、目的:对于在实际问题中出现的大型的稀疏矩阵,若用常规分配方法在计算机中储存,将会产生大量的内存浪费,而且在访问和操作的时候也会造成大量时间上的浪费,为了解决这一问题,从而善生了多种解决方案。(2)、由于其自身的稀疏特性,通过压缩可以大大节省稀疏矩阵的内存代价。具体操作是:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节...原创 2018-07-13 19:56:10 · 15320 阅读 · 0 评论