acmpesuecc / acmpesuecc/traffic_simulation

Data Structure Alternatives - Commenting on efficiency

未关闭
#8 46 条评论 0 个 reaction 已指派 1 人 已被 @sameermanvi 认领 在 GitHub 查看
BOUNTY:75 hacknight-2025 hacktoberfest
主要语言
Python
星标
1
派生
13
PR 合并指标
30 天内没有已合并 PR

描述

# Bounty Points: 75

## Branch Instructions
push changes to a new *'ds'* branch

***

**Explanation:**

Current clock list management is **inefficient**
Removes items while iterating: `for i in clock: if i[2]==t: clock.remove(i)`
$O(n^2)$ complexity due to `list.remove()` in loop
No priority queue for event scheduling

Current problematic code:
```python
for i in clock:
if i[2] == t:
clock.remove(i) # $O(n)$ operation in $O(n)$ loop
```
### Possible fix/approach:

* Replace list with **`heapq`**-based **priority queue**
* Use event-based scheduling with `(time, event\_data)`
* Alternative: **dictionary** with time as key
* Benchmark before/after improvements
* Document complexity improvements

---

### Maintainer notes:

* Current approach causes **performance issues** with large graphs
* Focus on **clock/event management data structure**
* Should maintain same simulation logic

---

### Resources:

* Python `heapq` documentation
* Event-driven simulation patterns

---

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。