算法/数据结构
文章平均质量分 97
CP3圣保罗
欢迎访问我的个人博客
http://www.lpl520.xn--ses554g/
展开
-
【数据结构】思维导图补充知识
图的应用BDPBFS广度优先遍历(无权图单源最短路径)=队列,层次遍历=DJ迪杰斯特拉 正权图 单源 最短路径=Prim最小生成树:优先选点,再找点附近相连的短边,点点相连DFKDFS深度优先遍历=栈递归,先序遍历Floyd 正+负 权图各顶点最短路径=K克鲁斯卡尔最小生成树:优先选择最短边,短边集合因为图的生成树不唯一,每条路径加上权值w就可以得到唯一的 最小生成树。...原创 2021-11-15 15:53:07 · 2417 阅读 · 0 评论 -
【数据结构】深度优先和广度优先比较
深度优先和广度优先比较区别:1) 二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。2) 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:先序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树。中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树。后序遍历:对任一子树,先遍历其左子树,然后遍历其右转载 2020-07-29 18:10:37 · 1523 阅读 · 0 评论 -
【数据结构】单链表基本操作(C++实现)
代码主体使用结构体+类+模板进行实现。1.LinkList.h//LinkList.h#pragma once#include<iostream>using namespace std;template<class T>struct Node //结点结构{ T data; //结点数据域 Node*link;//指针域 Node() { link = NULL; } Node(T e, Node *next = NULL) { data = e原创 2020-07-04 19:54:29 · 1704 阅读 · 0 评论 -
什么是计数排序?
原文地址有这样一道排序题:数组里有20个随机数,取值范围为从0到10,要求用最快的速度把这20个整数从小到大进行排序。第一时间你可能会想使用快速排序,因为快排的时间复杂度只有O(nlogn)。但是这种方法还是不够快,有没有比O(nlogn)更快的排序方法呢?你可能会有疑问:O(nlogn)已经是最快的排序算法了,怎么可能还有更快的排序方法?让我们先来回顾一下经典的排序算法,无论是归并排序,冒泡排序还是快速排序等等,都是基于元素之间的比较来进行排序的。但是有一种特殊的排序算法叫计数排序,这种排序算法不是转载 2020-05-24 11:10:44 · 301 阅读 · 0 评论 -
一篇文章告诉你如何寻找水王(数组中存在超过一半的数字)
#include<iostream>using namespace std;//case1 排序后返回数组中间的那个数字O nlogn//case2 hash统计//case3 顺序统计:需要改动数组内容//case4 消除法:不需要改变数组int Remove(int a[],int n) { int candidate = a[0];//候选数 int coun...原创 2020-03-12 14:28:58 · 128 阅读 · 0 评论 -
一篇文章快速搞懂排序算法(含实现源码)
十大排序算法函数声明时间复杂度表主函数#include<iostream>using namespace std;void BubbleSort(int length, int array[]);//冒泡排序void SelectSort(int length, int array[]);//选择排序void InsertSort(int length, int a...原创 2020-03-09 16:48:10 · 307 阅读 · 0 评论 -
快速排序算法实现:单向扫描法&&双向扫描法&&三分法(有相同元素)
单向指针扫描void Swap(int i, int j, int array[])//交换数组内两个元素 { int temp; temp = array[i]; array[i] = array[j]; array[j] = temp; }void QuickSort(int begin, int end, int array[])//快速排序{ if (beg...原创 2020-03-06 16:53:45 · 985 阅读 · 0 评论 -
关于排序算法思想总结,你该了解这些
算法图解链接:https://blog.csdn.net/u012562943/article/details/100136531一,直接插入排序 总体思路:位于表中后面的元素依次与表中前面的元素比较,若比之小,则还需继续和更前面的元素比较,直至遇到一个比它大的元素或者比较到第一个元素(哨兵)了。 ①先将第一个元素视为有序,第二个元素与第一个元素比较,若...原创 2020-03-01 15:34:02 · 373 阅读 · 0 评论 -
一篇文章快速搞懂十大排序算法(C++实现源码)
十大排序实现#include<iostream>using namespace std;void BubbleSort(int length, int array[]);//冒泡排序void SelectSort(int length, int array[]);//选择排序void InsertSort(int length, int array[]);//插入排序v...原创 2020-02-28 15:38:47 · 220 阅读 · 0 评论