- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 数据结构心法概要
章节题目串模式匹配算法树二叉树的层序遍历树二叉排序树(BST)的创建,查找,插入,删除及最大最小结点树非递归实现二叉树遍历(附c++完整代码)树遍历二叉树的应用:输出二叉树中的叶子结点、求二叉树的高度树树的同构树平衡二叉树(AVL树)树小白专场—是否同一棵二叉搜索树树哈夫曼树与哈夫曼编码堆堆,堆的创建,插...
2018-11-03 00:31:08 2857 4
原创 排序算法时间复杂度,额外空间复杂度比较
排序方法平均时间复杂度最坏情况下时间复杂度额外空间复杂度稳定性简单选择排序O(N2)O(N2)O(1)不稳定冒泡排序O(N2)O(N2)O(1)稳定直接插入排序O(N2)O(N2)O(1)稳定希尔排序O(Nd)O(N2)O(1)不稳定堆排序O(NlogN)O(NlogN)O(1)不稳定快速排序O(Nl...
2018-11-29 16:02:33 1793
原创 基数排序
桶排序在介绍基数排序之前,我们先看看桶排序的原理。假设我们有N个学生,他们的成绩是0到100之间的整数(于是有M = 101个不同的成绩值)。如何在线性时间内将学生按成绩排序?在这个例子中我们看到数据的特殊性,学生可以有很多,但是种类就只有101种,我们建立101个桶,每个桶一个成绩值,桶中的存放的是链表,相同成绩的学生在对应的桶中构成链表,扫描每个学生的成绩,依次将其插入到对应的桶中。...
2018-11-29 11:02:37 696
原创 表排序
1、算法概述 间接排序定义一个指针数组作为“表”(table)如果仅要求按顺序输出,则输出:A[table[0]],A[table[1]],……,A[table[N-1]]
2018-11-21 16:19:34 2115 6
原创 快速排序
1、算法概述分而治之选取一个主元,将元素分成小于主元的子集和大于主元的子集,在子集中继续选主元,划分什么是快速排序算法的最好情况?每次正好中分:T(N) = O(N logN)void Quicksort(ElementType A[], int N){ if (N < 2) return; pivot = 从A[]中选一个主元; 将S = { A[] \ pivot }...
2018-11-20 22:44:19 376
原创 归并排序
1、核心:有序子列的归并两个子列一共有N个元素,则归并的时间复杂度:T(N)=O(N)/* L = 左边起始位置, R = 右边起始位置, RightEnd = 右边终点位置*/void Merge(ElementType A[], ElementType TmpA[],int L, int R, int RightEnd){ int LeftEnd = R - 1; //左边终点...
2018-11-20 14:57:46 373
原创 堆排序
1、前言:选择排序void Selection_Sort(ElementType A[], int N){ for (i = 0; i < N; i++) { MinPosition = ScanForMin(A, i, N–1); //从A[i]到A[N–1]中找最小元,并将其位置赋给MinPosition Swap(A[i], A[MinPosition]); /...
2018-11-19 16:36:37 385
原创 希尔排序(by Donald Shell)
1、举例说明 定义增量序列DM > DM-1 > … > D1 = 1 对每个Dk进行“Dk间隔”排序( k = M, M-1, … 1 )注意:“Dk间隔”有序的序列,在执行“Dk-1间隔”排序后,仍然是“Dk间隔”有序的2、原始希尔排序DM = [N/2] , Dk = [Dk+1/2]#include<iostream>using n
2018-11-18 20:58:36 448
原创 简单排序——冒泡排序,插入排序,逆序对
前提void X_Sort ( ElementType A[], int N )//A是一个数组,N是数组的个数。 大多数情况下,为简单起见,讨论从小大的整数排序 N是正整数 只讨论基于比较的排序(> = < 有定义) 只讨论内部排序 稳定性:任意两个相等的数据,排序前后的相对位置不发生改变 没有一种排序是任何情况下都表现最好的...
2018-11-17 20:31:21 764
原创 【图(下)】拓扑排序
1、举例说明:计算机专业排课说明:学C1,C2是不需要提前学别的课程的,学C3则需要提前学C1,C2。把课程列表转换为图,其中顶点代表课程,则从V到W有一条边代表:V是W的预修课程2、拓扑排序 拓扑序:如果图中从V到W有一条有向路径,则V一定排在W之前。满足此条件的顶点序列称为一个拓扑序 获得一个拓扑序的过程就是拓扑排序 AOV如果有合理的拓扑序,则必定是有向无环图(Directe...
2018-11-14 00:20:31 805
原创 【图(下)】最小生成树问题
1、什么是最小生成树(Minimum Spanning Tree) 是一棵树无回路|V|个顶点一定有|V|-1条边 是生成树包含全部顶点|V|-1条边都在图里 边的权重和最小最小生成树存在↔ 图连通2、贪心算法 什么是“贪”:每一步都要最好的 什么是“好”:权重最小的边 需要约束:只能用图里有的边只能正好用掉|V|-1条边不能有回路3、P...
2018-11-12 20:10:17 3598
原创 【图(中)】小白专场: 哈利·波特的考试
题目:这门课是用魔咒将一种动物变成另一种动物。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe,把猫变成鱼,魔咒lalala。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。只允许带一只动物,考察把这只动物变成任意一只指定动物的本事。于是他来问你:带什么动物去可以让最难变的那种动物(即该动物变为自己带去的动物所需要的魔咒最长)需要的魔咒最短?例如...
2018-11-10 20:59:45 380
原创 【图(中)】最短路径问题
1、最短路径问题的抽象 在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径这条路径就是两点之间的最短路径(Shortest Path)第一个顶点为源点(Source)最后一个顶点为终点(Destination)2、问题分类 单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径(有向)无权图(有向)有权图 多源最短路径问题:求任意两...
2018-11-06 21:41:05 1594 1
原创 【图(上)】小白专场:如何建立图
1、用邻接矩阵表示图typedef struct GNode *PtrToGNode;struct GNode{ int Nv; //顶点数 int Ne; //边数 DataType Data[MaxVertexNum]; //存顶点的数据};typedef PtrToGNode MGraph; //以邻接矩阵存储的图类型MGraph初始化 初始化一个有Ver...
2018-11-03 00:09:03 1055
原创 【图(上)】六度空间
六度空间(Six Degrees of Separation) 你和任何一个陌生人之间所间隔的人不会超过六个题目:给定社交网络图,请对每个节点计算符合“六度空间”理论的结点占结点总数的百分比算法思路: 对每个节点,进行广度优先搜索 搜索过程中累计访问的节点数 需要记录“层”数,仅计算6层以内的节点数具体过程:对每一个结点求其6层以内可以访问的结点的总数,除以总数n就是该节...
2018-11-02 00:11:20 1560
原创 【图(上)】拯救007
题目说明:在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0) 为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的...
2018-11-01 10:52:06 2478
jieba-master.zip
2020-04-02
BCC 5.5.1.7z
2019-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人