常见算法的实现伪代码及时间复杂度

本文介绍了常见的算法实现,包括使用dfs思想找欧拉回路,复杂度为O(n);线段树的实现,其时间复杂度为O(nlogn);堆优化的Prim算法适用于稠密图;并查集优化的Kruskal算法适用于稀疏图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

找欧拉回路

dfs思想

find_circuit(结点i){
    当结点i有邻居时
{  
    选择任意一个邻居j;
    删除边(i,j)或者做访问标记;
    find_circuit(结点j);
}
    输出或存储节点i;
}
`
<时间复杂度> O(m+n)
`
1、奇点:出度为奇数的点
2、定义:欧拉回路:通过图的每条边一次且仅一次回到起点的路径
欧拉通路:通过图的每条边一次且仅一次的路径
3、欧拉定理:1)欧拉通路存在条件:图中奇点数为0或1,图保证联通;若
       奇点数为2,则路径一定从一个奇点开始,到另一个奇点结束
      2)欧拉回路的存在条件:图中无奇点,图保证联通

不知道是啥

<代码>
for(int i=1;i<=n;i++) for(j=i * i; j<=n;j+=i * i)
复杂度:o(n)

线段树

O(nlogn)

堆优化prim

// luogu-judger-enable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值