基础算法
文章平均质量分 57
晴天码字
这个作者很懒,什么都没留下…
展开
-
刷题系列之二叉树-104二叉树的最大深度
力扣刷题系列之二叉树原创 2022-11-20 10:41:40 · 141 阅读 · 0 评论 -
树的两种非递归的先序遍历
void preOrder(TreeNode* root){ if(root==nullptr) return ; stack<TreeNode*> st; st.push(root); while(!st.empty()){ TreeNode* now=st.top(); st.pop(); cout<<now->val; if(now->right)原创 2020-08-02 16:52:25 · 146 阅读 · 0 评论 -
堆排序
#include<cstdio>#include<iostream>#include<vector>using namespace std;vector<int> h;//0号位不存放元素void swap(int &x,int &y){ int temp=x; x=y; y=temp;}void createHe...原创 2020-02-23 16:26:44 · 153 阅读 · 0 评论 -
图的深度优先遍历DFS
//实现图的深度优先遍历(DFS)const int maxv=1000;//定义图中最大节点数const int INF=MAX_INT;int n;//输入节点数int G[maxv][maxv]={INF};bool visited[maxv]={false};void DFS(int v,int depth){ visited[v]=true;//标记已访问 ...原创 2019-07-26 15:52:23 · 120 阅读 · 0 评论 -
迪杰斯特拉算法——求解单源最短路径
const int maxv=1000;const int INF=MAX_INT;//邻接矩阵形式int n,G[maxv][maxv];int visited[maxv]={false};//表示是否已加入集合S中,S是已经访问过的节点集合int d[maxv];void Dijkstra(int s){ fill(d,d+maxv,INF);//初始化操作 d[...原创 2019-07-26 16:41:35 · 187 阅读 · 0 评论 -
Floyd算法
算法思想:如果存在顶点k,使得k作为中介点,可以使dis[i][j]变小,则更新dis[i][j]。void Floyd(){ for(int k=0;k<n;k++){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(dis[i][k]!=INF&&dis[k][j]!=INF&&am...原创 2019-07-28 21:32:42 · 80 阅读 · 0 评论 -
KMP算法实现
//求解长度为len的字符串s的next数组void getNext(char s[],int len){ int j=-1;//标识当前最长前后缀 next[0]=-1; for(int i=1;i<len;i++){//求解next[1]~next[len-1] while(j!=-1&&s[i]!=s[j+1]){//不断更新最...原创 2019-08-30 11:50:17 · 76 阅读 · 0 评论