Algorithm Day1

本文介绍了算法的基础概念及其在解决动态连通性问题中的应用,探讨了快速查找、快速联合及带路径压缩的加权快速联合等算法,并提出了具体问题如最小生成树的求解、社交网络连通性分析及双峰数组搜索的方法。

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

Algorithm Day 1

  • To get understand the impact of algorithm.
  • Know about the problem of “Dynamic connectivity”
  • Learned there are three ways to solve this problem:

    1. Quick find, Quick Union,
    2. Weighted Quick union,
    3. Weighted Quick union with path compression

    Weighted Quick unio with path compression

    Algorithm  performance comparison

Steps to developing a usable algorithm

  1. Model the problem.
  2. Find an algorithm to solve it.
  3. Fast enough? Fits in memory?
  4. If not, figure out why.
  5. Find a way to address the problem.
  6. Iterate until satisfied.

The scientific method.

Mathematical analysis.

Q1: So, How to solve the Kruskal’s minimum spanning tree with union-find ?

Q2: Social network connectivity. Given a social network containing n members and a log file containing m timestamps at which times pairs of members formed friendships, design an algorithm to determine the earliest time at which all members are connected (i.e., every member is a friend of a friend of a friend … of a friend). Assume that the log file is sorted by timestamp and that friendship is an equivalence relation. The running time of your algorithm should be m*log n or better and use extra space proportional to n.

Q3: Search in a bitonic array. An array is bitonic if it is comprised of an increasing sequence of integers followed immediately by a decreasing sequence of integers. Write a program that, given a bitonic array of n distinct integer values, determines whether a given integer is in the array.

  • Standard version: Use ∼3lgn compares in the worst case.
  • Signing bonus: Use ∼2lgn compares in the worst case (and prove that no algorithm can guarantee to perform fewer than ∼2lgn compares in the worst case).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值