
数据结构
X_Trusher
闲暇时间谢谢博客,随手更新
展开
-
快速排序(C++)
数据结构–快速排序(C++)快速排序是属于交换排序的一种方便的排序方法,使用较为快捷,其平均复杂度为O(nlogn)(以2为底)C++代码 #include <iostream> #include <bits/stdc++.h> #define MAXLEN 6 using namespace std; int Position(int a[],int low,int high){ int pos = a[low];原创 2020-10-05 22:30:11 · 119 阅读 · 0 评论 -
快速排序算法
快速排序定义快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。参考视频快速排序算法参考博客快速排序算法代码...原创 2020-02-09 12:57:56 · 114 阅读 · 0 评论 -
数据结构C语言版之插入排序(直接插入排序和折半插入排序)
就这两种插入排序的定义等等就忽略了,不懂自行百度。直接插入排序正序时最好时间复杂度O(n),逆序最坏O(n2),平均O(n2),空间复杂度O(1);稳定;原始序列基本有序时该方法好折半插入排序逆序最坏O(n2),正序时O(NLogN) , S(n)=O(1);稳定主要提供代码。直接插入排序的动态实现方法可以去B站上找找,有个动态演示的视频。/* 直接插入排序和...原创 2018-11-26 22:38:00 · 784 阅读 · 0 评论 -
数据结构C语言版之堆排序(代码)
之前写了直接插入和折半插入的排序算法,这次的是堆排序算法,相比前两种,这种的时间复杂度更低一些,在一些题目里面,有可能你用其他的排序方法就会超时,而用堆排序就不会。堆的定义什么的就略去了代码:#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define MAX_SIZE 100...原创 2018-12-17 17:18:12 · 748 阅读 · 0 评论 -
数据结构之队列(C语言)基础
队列(Queue):是一种先进先出的线性表(FIFO),也分为两种,链队列和循环队列(好像还有其他的类型,忘了。。)这里就介绍这两种的一些简单函数。1、链队列毋庸置疑,就是链式存储队列,有两个指针front和rear,其中front负责进队,rear负责出队代码如下/* 数据结构之链队列 实现函数: 初始化;入队;出队;判断是否队空,销毁;输出*...原创 2018-12-19 21:30:39 · 468 阅读 · 0 评论 -
数据结构之二叉树基础(C语言)
树:(Tree)性质:子树是不相交的除了根节点之外,每个节点有且仅有一个节结点一颗N个结点的树有N-1条边概念:结点的度:结点的子树个数树的度:树的所有结点中最大的度数叶结点:度为0的结点结点的层次:规定根节点在1层,其他任意节点的层数是其父节点的层数加1树的深度:树中所有结点中最大层次是这棵树的深度二叉树:(每个结点至多有2颗子树)种类:完全二叉树,满二叉树几个重要...原创 2018-12-20 23:52:11 · 3867 阅读 · 11 评论 -
数据结构之赫夫曼树(C语言)
赫夫曼树,又称最优二叉树,是一类带权值路径长度最短的树,有着广泛的应用。代码:/* 数据结构之赫夫曼树及求最优带权路径长度(带权路径长度:WPL) 思路: 自底向上,优先合并权值小的结点。合并后,双亲结点权值设为两子结点之和,忽略被合并的结点, 如此重复至所有结点都归入一棵树*/#include<stdio.h>#include<s...原创 2018-12-21 13:05:38 · 982 阅读 · 0 评论 -
数据结构之线性表(C语言)
线性表的两种存储方式1,顺序存储利用数组/* 数据结构之线性表复习--顺序存储 构建了以下函数: 初始化,查找,插入,删除,合并,输出*/#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define LIST_INIT_SIZE 100#defin...原创 2018-12-18 17:37:15 · 253 阅读 · 0 评论 -
数据结构之栈(C语言)基础
栈,写的比较基础的函数,太复杂的没写,而且栈的应用(括号匹配啥的)也没写。。栈:(Stack)后进先出的线性表(LIFO)把允许插入和删除的一段称为栈顶,另一端称为栈底/*小问题: 最先进栈的元素是不是就是最后出栈的呢? 答案是不一定*/ /* 数据结构之栈 实现基础函数: 初始化,入栈,出栈,判断是否为空, 获得栈顶元素,...原创 2018-12-18 21:21:50 · 165 阅读 · 0 评论