dancealgorithm 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dancealgorithm-0.1.0/LICENSE +22 -0
- dancealgorithm-0.1.0/PKG-INFO +199 -0
- dancealgorithm-0.1.0/README.md +174 -0
- dancealgorithm-0.1.0/pyproject.toml +64 -0
- dancealgorithm-0.1.0/setup.cfg +4 -0
- dancealgorithm-0.1.0/src/dancealgorithm/__init__.py +128 -0
- dancealgorithm-0.1.0/src/dancealgorithm/__main__.py +8 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Campus/Solution.java +198 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Campus/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Flight/Solution.java +204 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Flight/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Smart/Solution.java +220 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Smart/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA.txt +29 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Advertisement/Solution.java +141 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Advertisement/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Electric/Solution.java +168 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Electric/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Emergency/Solution.java +159 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Emergency/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK.txt +26 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Classroom/Solution.java +87 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Classroom/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Interference/Solution.java +88 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Interference/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - University/Solution.java +88 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - University/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC.txt +25 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Cloud/Solution.java +115 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Cloud/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Disaster/Solution.java +116 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Disaster/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Hospital/Solution.java +115 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Hospital/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/K.txt +38 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Delivery/Solution.java +180 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Delivery/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Drilling/Solution.java +197 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Drilling/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Flight/Solution.java +180 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Flight/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC.txt +31 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/Solution.java +162 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/Solution.java +144 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/Solution.java +162 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS.txt +32 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Emergency/Solution.java +211 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Emergency/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Logistics/Solution.java +189 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Logistics/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Skyconnect/Solution.java +204 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Skyconnect/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG.txt +28 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/Solution.java +147 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/Solution.java +148 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/Solution.java +147 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/__init__.py +34 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/dataset.csv +16 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS.txt +33 -0
- dancealgorithm-0.1.0/src/dancealgorithm/assignments/__init__.py +65 -0
- dancealgorithm-0.1.0/src/dancealgorithm/cli.py +349 -0
- dancealgorithm-0.1.0/src/dancealgorithm/config.py +125 -0
- dancealgorithm-0.1.0/src/dancealgorithm/downloader.py +330 -0
- dancealgorithm-0.1.0/src/dancealgorithm.egg-info/PKG-INFO +199 -0
- dancealgorithm-0.1.0/src/dancealgorithm.egg-info/SOURCES.txt +76 -0
- dancealgorithm-0.1.0/src/dancealgorithm.egg-info/dependency_links.txt +1 -0
- dancealgorithm-0.1.0/src/dancealgorithm.egg-info/entry_points.txt +3 -0
- dancealgorithm-0.1.0/src/dancealgorithm.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DanceAlgorithm Maintainer
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dancealgorithm
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: DanceAlgorithm: Instant DAA Algorithms, Lab Problem Sheets, Datasets, and Code Vault.
|
|
5
|
+
Author: DanceAlgorithm Maintainer
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/AdityaxDeore/dancealgorithm
|
|
8
|
+
Keywords: dancealgorithm,daa,algorithms,problem-sheets,datasets,cli
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Intended Audience :: Education
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Education
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
|
|
26
|
+
# ⚡ DanceAlgorithm
|
|
27
|
+
|
|
28
|
+
> **Instant DAA Problem Sheets, Datasets, Solutions & Algorithm Vault**
|
|
29
|
+
> Download, extract, organize, and directly **import** all 24 Design & Analysis of Algorithms (DAA) lab practical problem sheets, datasets, and Java solutions cleanly onto your PC with a single command or Python import.
|
|
30
|
+
|
|
31
|
+
[](https://pypi.org/project/dancealgorithm/)
|
|
32
|
+
[](https://www.python.org/)
|
|
33
|
+
[](https://opensource.org/licenses/MIT)
|
|
34
|
+
[]()
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 🌟 The Magic Experience
|
|
39
|
+
|
|
40
|
+
### Option A: Install & Extract All 24 Problem Sheets to `C:\DAA_Assignments`
|
|
41
|
+
|
|
42
|
+
```powershell
|
|
43
|
+
pip install dancealgorithm; dance
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Or run `dance` (or `dancealgorithm`) anytime in your terminal:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
dance
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Your `C:\DAA_Assignments` folder is cleanly populated with all 24 problem sheets:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
C:\DAA_Assignments\
|
|
56
|
+
├── MS - Customer/
|
|
57
|
+
│ ├── dataset.csv
|
|
58
|
+
│ └── Solution.java
|
|
59
|
+
├── MS - Commerce/
|
|
60
|
+
│ ├── dataset.csv
|
|
61
|
+
│ └── Solution.java
|
|
62
|
+
├── MS - Library/
|
|
63
|
+
├── ...
|
|
64
|
+
└── LC - Flight/
|
|
65
|
+
└── Solution.java
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 🚀 Quick Terminal CLI Usage
|
|
71
|
+
|
|
72
|
+
### 1. View Algorithm Notes & Time Complexities directly on screen
|
|
73
|
+
|
|
74
|
+
No files extracted — instant terminal reference cheat sheets:
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
# Merge Sort recurrence & analysis
|
|
78
|
+
dance MS.txt
|
|
79
|
+
|
|
80
|
+
# Quick Sort partition & analysis
|
|
81
|
+
dance QS.txt
|
|
82
|
+
|
|
83
|
+
# Dijkstra shortest path analysis
|
|
84
|
+
dance DA.txt
|
|
85
|
+
|
|
86
|
+
# Graph Coloring backtracking analysis
|
|
87
|
+
dance GC.txt
|
|
88
|
+
|
|
89
|
+
# Fractional Knapsack greedy proof
|
|
90
|
+
dance FK.txt
|
|
91
|
+
|
|
92
|
+
# 0/1 Knapsack dynamic programming
|
|
93
|
+
dance K.txt
|
|
94
|
+
|
|
95
|
+
# Multistage Graph backward DP
|
|
96
|
+
dance MSG.txt
|
|
97
|
+
|
|
98
|
+
# Least Cost Branch & Bound TSP
|
|
99
|
+
dance LC.txt
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
*(You can also use `dancealgorithm DA.txt` or `dance DA`)*
|
|
103
|
+
|
|
104
|
+
### 2. Extract a Specific Assignment Folder
|
|
105
|
+
|
|
106
|
+
Extract only that particular folder:
|
|
107
|
+
|
|
108
|
+
```powershell
|
|
109
|
+
# Extract unquoted or quoted
|
|
110
|
+
dance MSG - Logistics
|
|
111
|
+
dance "DA - Smart"
|
|
112
|
+
dance "GC - Classroom"
|
|
113
|
+
dance "MS - Customer"
|
|
114
|
+
|
|
115
|
+
# Or extract by problem number
|
|
116
|
+
dance 1
|
|
117
|
+
dance 13
|
|
118
|
+
dance 19
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 3. List All Available Problem Sheets & Notes
|
|
122
|
+
|
|
123
|
+
```powershell
|
|
124
|
+
dance list
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 🐍 Option B: Direct Python Import
|
|
130
|
+
|
|
131
|
+
All 24 assignments can be directly inspected or extracted programmatically:
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
import dancealgorithm
|
|
135
|
+
|
|
136
|
+
# 1. Access code directly
|
|
137
|
+
code = dancealgorithm.get("MSG - Logistics").code
|
|
138
|
+
print(code)
|
|
139
|
+
|
|
140
|
+
# 2. Extract a specific sheet
|
|
141
|
+
dancealgorithm.extract("MSG - Logistics")
|
|
142
|
+
|
|
143
|
+
# 3. Extract all sheets to custom destination
|
|
144
|
+
dancealgorithm.extract(destination="D:/MyLabs")
|
|
145
|
+
|
|
146
|
+
# 4. Open destination folder in Windows Explorer
|
|
147
|
+
dancealgorithm.open_folder()
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 📚 Complete Catalogue of All 24 DAA Problem Sheets
|
|
153
|
+
|
|
154
|
+
| No. | Algorithm | Category | Problem Sheet Title | Time Complexity |
|
|
155
|
+
|---|---|---|---|---|
|
|
156
|
+
| **01** | Merge Sort | Divide & Conquer | `MS - Customer` | $O(n \log n)$ |
|
|
157
|
+
| **02** | Merge Sort | Divide & Conquer | `MS - Commerce` | $O(n \log n)$ |
|
|
158
|
+
| **03** | Merge Sort | Divide & Conquer | `MS - Library` | $O(n \log n)$ |
|
|
159
|
+
| **04** | Quick Sort | Divide & Conquer | `QS - Movie` | $O(n \log n)$ avg |
|
|
160
|
+
| **05** | Quick Sort | Divide & Conquer | `QS - Commerce` | $O(n \log n)$ avg |
|
|
161
|
+
| **06** | Quick Sort | Divide & Conquer | `QS - Online` | $O(n \log n)$ avg |
|
|
162
|
+
| **07** | Fractional Knapsack | Greedy Method | `FK - Emergency` | $O(n \log n)$ |
|
|
163
|
+
| **08** | Fractional Knapsack | Greedy Method | `FK - Electric` | $O(n \log n)$ |
|
|
164
|
+
| **09** | Fractional Knapsack | Greedy Method | `FK - Advertisement` | $O(n \log n)$ |
|
|
165
|
+
| **10** | Dijkstra | Shortest Path | `DA - Smart` | $O(V^2)$ / $O(E \log V)$ |
|
|
166
|
+
| **11** | Dijkstra | Shortest Path | `DA - Campus` | $O(V^2)$ / $O(E \log V)$ |
|
|
167
|
+
| **12** | Dijkstra | Shortest Path | `DA - Flight` | $O(V^2)$ / $O(E \log V)$ |
|
|
168
|
+
| **13** | Multistage Graph | Dynamic Programming | `MSG - Logistics` | $O(V + E)$ |
|
|
169
|
+
| **14** | Multistage Graph | Dynamic Programming | `MSG - Skyconnect` | $O(V + E)$ |
|
|
170
|
+
| **15** | Multistage Graph | Dynamic Programming | `MSG - Emergency` | $O(V + E)$ |
|
|
171
|
+
| **16** | 0/1 Knapsack | Dynamic Programming | `K - Disaster` | $O(n \cdot W)$ |
|
|
172
|
+
| **17** | 0/1 Knapsack | Dynamic Programming | `K - Hospital` | $O(n \cdot W)$ |
|
|
173
|
+
| **18** | 0/1 Knapsack | Dynamic Programming | `K - Cloud` | $O(n \cdot W)$ |
|
|
174
|
+
| **19** | Graph Coloring | Backtracking | `GC - Classroom` | $O(V \cdot m^V)$ |
|
|
175
|
+
| **20** | Graph Coloring | Backtracking | `GC - Interference` | $O(V \cdot m^V)$ |
|
|
176
|
+
| **21** | Graph Coloring | Backtracking | `GC - University` | $O(V \cdot m^V)$ |
|
|
177
|
+
| **22** | LC Branch & Bound | Branch & Bound | `LC - Delivery` | $O(n! \cdot n^2)$ |
|
|
178
|
+
| **23** | LC Branch & Bound | Branch & Bound | `LC - Drilling` | $O(n! \cdot n^2)$ |
|
|
179
|
+
| **24** | LC Branch & Bound | Branch & Bound | `LC - Flight` | $O(n! \cdot n^2)$ |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## ⚙️ Configuration
|
|
184
|
+
|
|
185
|
+
View or update your default preferences:
|
|
186
|
+
|
|
187
|
+
```powershell
|
|
188
|
+
# Set custom destination folder
|
|
189
|
+
dance config --set-dest "D:\My_DAA_Folder"
|
|
190
|
+
|
|
191
|
+
# Reset configuration back to system defaults
|
|
192
|
+
dance config --reset
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 📄 License
|
|
198
|
+
|
|
199
|
+
MIT © [AdityaxDeore](https://github.com/AdityaxDeore)
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# ⚡ DanceAlgorithm
|
|
2
|
+
|
|
3
|
+
> **Instant DAA Problem Sheets, Datasets, Solutions & Algorithm Vault**
|
|
4
|
+
> Download, extract, organize, and directly **import** all 24 Design & Analysis of Algorithms (DAA) lab practical problem sheets, datasets, and Java solutions cleanly onto your PC with a single command or Python import.
|
|
5
|
+
|
|
6
|
+
[](https://pypi.org/project/dancealgorithm/)
|
|
7
|
+
[](https://www.python.org/)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[]()
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 🌟 The Magic Experience
|
|
14
|
+
|
|
15
|
+
### Option A: Install & Extract All 24 Problem Sheets to `C:\DAA_Assignments`
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
pip install dancealgorithm; dance
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or run `dance` (or `dancealgorithm`) anytime in your terminal:
|
|
22
|
+
|
|
23
|
+
```powershell
|
|
24
|
+
dance
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Your `C:\DAA_Assignments` folder is cleanly populated with all 24 problem sheets:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
C:\DAA_Assignments\
|
|
31
|
+
├── MS - Customer/
|
|
32
|
+
│ ├── dataset.csv
|
|
33
|
+
│ └── Solution.java
|
|
34
|
+
├── MS - Commerce/
|
|
35
|
+
│ ├── dataset.csv
|
|
36
|
+
│ └── Solution.java
|
|
37
|
+
├── MS - Library/
|
|
38
|
+
├── ...
|
|
39
|
+
└── LC - Flight/
|
|
40
|
+
└── Solution.java
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🚀 Quick Terminal CLI Usage
|
|
46
|
+
|
|
47
|
+
### 1. View Algorithm Notes & Time Complexities directly on screen
|
|
48
|
+
|
|
49
|
+
No files extracted — instant terminal reference cheat sheets:
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
# Merge Sort recurrence & analysis
|
|
53
|
+
dance MS.txt
|
|
54
|
+
|
|
55
|
+
# Quick Sort partition & analysis
|
|
56
|
+
dance QS.txt
|
|
57
|
+
|
|
58
|
+
# Dijkstra shortest path analysis
|
|
59
|
+
dance DA.txt
|
|
60
|
+
|
|
61
|
+
# Graph Coloring backtracking analysis
|
|
62
|
+
dance GC.txt
|
|
63
|
+
|
|
64
|
+
# Fractional Knapsack greedy proof
|
|
65
|
+
dance FK.txt
|
|
66
|
+
|
|
67
|
+
# 0/1 Knapsack dynamic programming
|
|
68
|
+
dance K.txt
|
|
69
|
+
|
|
70
|
+
# Multistage Graph backward DP
|
|
71
|
+
dance MSG.txt
|
|
72
|
+
|
|
73
|
+
# Least Cost Branch & Bound TSP
|
|
74
|
+
dance LC.txt
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
*(You can also use `dancealgorithm DA.txt` or `dance DA`)*
|
|
78
|
+
|
|
79
|
+
### 2. Extract a Specific Assignment Folder
|
|
80
|
+
|
|
81
|
+
Extract only that particular folder:
|
|
82
|
+
|
|
83
|
+
```powershell
|
|
84
|
+
# Extract unquoted or quoted
|
|
85
|
+
dance MSG - Logistics
|
|
86
|
+
dance "DA - Smart"
|
|
87
|
+
dance "GC - Classroom"
|
|
88
|
+
dance "MS - Customer"
|
|
89
|
+
|
|
90
|
+
# Or extract by problem number
|
|
91
|
+
dance 1
|
|
92
|
+
dance 13
|
|
93
|
+
dance 19
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 3. List All Available Problem Sheets & Notes
|
|
97
|
+
|
|
98
|
+
```powershell
|
|
99
|
+
dance list
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 🐍 Option B: Direct Python Import
|
|
105
|
+
|
|
106
|
+
All 24 assignments can be directly inspected or extracted programmatically:
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
import dancealgorithm
|
|
110
|
+
|
|
111
|
+
# 1. Access code directly
|
|
112
|
+
code = dancealgorithm.get("MSG - Logistics").code
|
|
113
|
+
print(code)
|
|
114
|
+
|
|
115
|
+
# 2. Extract a specific sheet
|
|
116
|
+
dancealgorithm.extract("MSG - Logistics")
|
|
117
|
+
|
|
118
|
+
# 3. Extract all sheets to custom destination
|
|
119
|
+
dancealgorithm.extract(destination="D:/MyLabs")
|
|
120
|
+
|
|
121
|
+
# 4. Open destination folder in Windows Explorer
|
|
122
|
+
dancealgorithm.open_folder()
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 📚 Complete Catalogue of All 24 DAA Problem Sheets
|
|
128
|
+
|
|
129
|
+
| No. | Algorithm | Category | Problem Sheet Title | Time Complexity |
|
|
130
|
+
|---|---|---|---|---|
|
|
131
|
+
| **01** | Merge Sort | Divide & Conquer | `MS - Customer` | $O(n \log n)$ |
|
|
132
|
+
| **02** | Merge Sort | Divide & Conquer | `MS - Commerce` | $O(n \log n)$ |
|
|
133
|
+
| **03** | Merge Sort | Divide & Conquer | `MS - Library` | $O(n \log n)$ |
|
|
134
|
+
| **04** | Quick Sort | Divide & Conquer | `QS - Movie` | $O(n \log n)$ avg |
|
|
135
|
+
| **05** | Quick Sort | Divide & Conquer | `QS - Commerce` | $O(n \log n)$ avg |
|
|
136
|
+
| **06** | Quick Sort | Divide & Conquer | `QS - Online` | $O(n \log n)$ avg |
|
|
137
|
+
| **07** | Fractional Knapsack | Greedy Method | `FK - Emergency` | $O(n \log n)$ |
|
|
138
|
+
| **08** | Fractional Knapsack | Greedy Method | `FK - Electric` | $O(n \log n)$ |
|
|
139
|
+
| **09** | Fractional Knapsack | Greedy Method | `FK - Advertisement` | $O(n \log n)$ |
|
|
140
|
+
| **10** | Dijkstra | Shortest Path | `DA - Smart` | $O(V^2)$ / $O(E \log V)$ |
|
|
141
|
+
| **11** | Dijkstra | Shortest Path | `DA - Campus` | $O(V^2)$ / $O(E \log V)$ |
|
|
142
|
+
| **12** | Dijkstra | Shortest Path | `DA - Flight` | $O(V^2)$ / $O(E \log V)$ |
|
|
143
|
+
| **13** | Multistage Graph | Dynamic Programming | `MSG - Logistics` | $O(V + E)$ |
|
|
144
|
+
| **14** | Multistage Graph | Dynamic Programming | `MSG - Skyconnect` | $O(V + E)$ |
|
|
145
|
+
| **15** | Multistage Graph | Dynamic Programming | `MSG - Emergency` | $O(V + E)$ |
|
|
146
|
+
| **16** | 0/1 Knapsack | Dynamic Programming | `K - Disaster` | $O(n \cdot W)$ |
|
|
147
|
+
| **17** | 0/1 Knapsack | Dynamic Programming | `K - Hospital` | $O(n \cdot W)$ |
|
|
148
|
+
| **18** | 0/1 Knapsack | Dynamic Programming | `K - Cloud` | $O(n \cdot W)$ |
|
|
149
|
+
| **19** | Graph Coloring | Backtracking | `GC - Classroom` | $O(V \cdot m^V)$ |
|
|
150
|
+
| **20** | Graph Coloring | Backtracking | `GC - Interference` | $O(V \cdot m^V)$ |
|
|
151
|
+
| **21** | Graph Coloring | Backtracking | `GC - University` | $O(V \cdot m^V)$ |
|
|
152
|
+
| **22** | LC Branch & Bound | Branch & Bound | `LC - Delivery` | $O(n! \cdot n^2)$ |
|
|
153
|
+
| **23** | LC Branch & Bound | Branch & Bound | `LC - Drilling` | $O(n! \cdot n^2)$ |
|
|
154
|
+
| **24** | LC Branch & Bound | Branch & Bound | `LC - Flight` | $O(n! \cdot n^2)$ |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## ⚙️ Configuration
|
|
159
|
+
|
|
160
|
+
View or update your default preferences:
|
|
161
|
+
|
|
162
|
+
```powershell
|
|
163
|
+
# Set custom destination folder
|
|
164
|
+
dance config --set-dest "D:\My_DAA_Folder"
|
|
165
|
+
|
|
166
|
+
# Reset configuration back to system defaults
|
|
167
|
+
dance config --reset
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 📄 License
|
|
173
|
+
|
|
174
|
+
MIT © [AdityaxDeore](https://github.com/AdityaxDeore)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68.0.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "dancealgorithm"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "DanceAlgorithm: Instant DAA Algorithms, Lab Problem Sheets, Datasets, and Code Vault."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "DanceAlgorithm Maintainer" }
|
|
14
|
+
]
|
|
15
|
+
keywords = [
|
|
16
|
+
"dancealgorithm",
|
|
17
|
+
"daa",
|
|
18
|
+
"algorithms",
|
|
19
|
+
"problem-sheets",
|
|
20
|
+
"datasets",
|
|
21
|
+
"cli"
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 4 - Beta",
|
|
25
|
+
"Environment :: Console",
|
|
26
|
+
"Intended Audience :: Education",
|
|
27
|
+
"Intended Audience :: Developers",
|
|
28
|
+
"Operating System :: OS Independent",
|
|
29
|
+
"Programming Language :: Python :: 3",
|
|
30
|
+
"Programming Language :: Python :: 3.9",
|
|
31
|
+
"Programming Language :: Python :: 3.10",
|
|
32
|
+
"Programming Language :: Python :: 3.11",
|
|
33
|
+
"Programming Language :: Python :: 3.12",
|
|
34
|
+
"Programming Language :: Python :: 3.13",
|
|
35
|
+
"Topic :: Education"
|
|
36
|
+
]
|
|
37
|
+
dependencies = []
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
dancealgorithm = "dancealgorithm.cli:main"
|
|
41
|
+
dance = "dancealgorithm.cli:main"
|
|
42
|
+
|
|
43
|
+
[project.urls]
|
|
44
|
+
Homepage = "https://github.com/AdityaxDeore/dancealgorithm"
|
|
45
|
+
|
|
46
|
+
[tool.setuptools.packages.find]
|
|
47
|
+
where = ["src"]
|
|
48
|
+
exclude = ["*.__pycache__*", "__pycache__"]
|
|
49
|
+
|
|
50
|
+
[tool.setuptools.package-data]
|
|
51
|
+
dancealgorithm = [
|
|
52
|
+
"assignments/**/*",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
[tool.setuptools.exclude-package-data]
|
|
56
|
+
dancealgorithm = [
|
|
57
|
+
"**/__pycache__/**",
|
|
58
|
+
"**/*.pyc",
|
|
59
|
+
"**/*.pyo",
|
|
60
|
+
"**/*.class"
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DanceAlgorithm - Instant DAA Algorithms, Lab Problem Sheets, Datasets & Code Vault.
|
|
3
|
+
All 24 Practical Exam Problem Sheets & Algorithm Notes Bundled & Instantly Importable.
|
|
4
|
+
"""
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from typing import Any, Dict, List, Optional, Union
|
|
11
|
+
|
|
12
|
+
__version__ = "0.1.0"
|
|
13
|
+
|
|
14
|
+
# Import bundled assignments registry and sheets
|
|
15
|
+
from dancealgorithm.assignments import ASSIGNMENTS_DIR, REGISTRY, SHEETS
|
|
16
|
+
|
|
17
|
+
# Expose assignments mapping (e.g. dancealgorithm.assignments[1])
|
|
18
|
+
assignments: Dict[Any, Any] = REGISTRY
|
|
19
|
+
|
|
20
|
+
for sheet in SHEETS:
|
|
21
|
+
title = getattr(sheet, "TITLE", None)
|
|
22
|
+
if not title:
|
|
23
|
+
continue
|
|
24
|
+
|
|
25
|
+
sheet_aliases = {title}
|
|
26
|
+
# Sanitized alias
|
|
27
|
+
sheet_aliases.add(title.replace(" ", "_").replace("-", "_").replace("—", "_"))
|
|
28
|
+
sheet_aliases.add(title.replace(" ", "").replace("-", "").replace("—", ""))
|
|
29
|
+
|
|
30
|
+
for alias in sheet_aliases:
|
|
31
|
+
setattr(sys.modules[__name__], alias, sheet)
|
|
32
|
+
sys.modules[f"dancealgorithm.{alias}"] = sheet
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get(identifier: Union[int, str]) -> Any:
|
|
36
|
+
"""
|
|
37
|
+
Get a specific problem sheet module by number (1..24), ID (e.g. 'ps1', 'PS01'),
|
|
38
|
+
or keyword/name (e.g. 'Customer', 'MS - Customer', 'GC - Classroom').
|
|
39
|
+
"""
|
|
40
|
+
if identifier in REGISTRY:
|
|
41
|
+
return REGISTRY[identifier]
|
|
42
|
+
|
|
43
|
+
if isinstance(identifier, int):
|
|
44
|
+
if identifier in REGISTRY:
|
|
45
|
+
return REGISTRY[identifier]
|
|
46
|
+
|
|
47
|
+
norm = str(identifier).strip().lower().replace("-", "").replace("_", "").replace(" ", "").replace("—", "")
|
|
48
|
+
digits = "".join(filter(str.isdigit, norm))
|
|
49
|
+
if digits:
|
|
50
|
+
val = int(digits)
|
|
51
|
+
if val in REGISTRY:
|
|
52
|
+
return REGISTRY[val]
|
|
53
|
+
|
|
54
|
+
# Keyword search across sheet titles
|
|
55
|
+
for sheet in SHEETS:
|
|
56
|
+
clean_title = sheet.TITLE.lower().replace("-", "").replace("_", "").replace(" ", "").replace("—", "")
|
|
57
|
+
if norm in clean_title or clean_title in norm:
|
|
58
|
+
return sheet
|
|
59
|
+
|
|
60
|
+
raise KeyError(f"Problem sheet not found for '{identifier}'. Available: 1..24.")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# Convenience alias: dancealgorithm.ps(1)
|
|
64
|
+
ps = get
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def list_assignments() -> List[Dict[str, Any]]:
|
|
68
|
+
"""
|
|
69
|
+
List all available DAA practical assignments with titles and paths.
|
|
70
|
+
"""
|
|
71
|
+
catalog = []
|
|
72
|
+
for sheet in SHEETS:
|
|
73
|
+
catalog.append({
|
|
74
|
+
"title": sheet.TITLE,
|
|
75
|
+
"path": sheet.PATH,
|
|
76
|
+
"has_solution": sheet.JAVA_SOLUTION.exists(),
|
|
77
|
+
"has_dataset": sheet.DATASET_PATH.exists(),
|
|
78
|
+
})
|
|
79
|
+
return catalog
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def extract(
|
|
83
|
+
sheet: Optional[Union[int, str]] = None,
|
|
84
|
+
destination: Optional[Union[str, Path]] = None,
|
|
85
|
+
overwrite: bool = True,
|
|
86
|
+
) -> List[Path]:
|
|
87
|
+
"""
|
|
88
|
+
Extract all problem sheets or a specific one to the destination directory.
|
|
89
|
+
Default destination is C:\\DAA_Assignments (or ~/DAA_Assignments).
|
|
90
|
+
"""
|
|
91
|
+
from dancealgorithm.config import get_destination
|
|
92
|
+
from dancealgorithm.downloader import extract_bundled
|
|
93
|
+
|
|
94
|
+
target = Path(destination) if destination else get_destination()
|
|
95
|
+
sub_filt = str(sheet) if sheet is not None else None
|
|
96
|
+
return extract_bundled(target, subject_filter=sub_filt, overwrite=overwrite)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def open_folder(destination: Optional[Union[str, Path]] = None) -> None:
|
|
100
|
+
"""
|
|
101
|
+
Open the assignments destination folder in Windows File Explorer.
|
|
102
|
+
"""
|
|
103
|
+
from dancealgorithm.config import get_destination
|
|
104
|
+
target = Path(destination) if destination else get_destination()
|
|
105
|
+
target.mkdir(parents=True, exist_ok=True)
|
|
106
|
+
if sys.platform == "win32":
|
|
107
|
+
os.system(f'explorer "{target}"')
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def __getattr__(name: str) -> Any:
|
|
111
|
+
try:
|
|
112
|
+
return get(name)
|
|
113
|
+
except KeyError:
|
|
114
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
__all__ = [
|
|
118
|
+
"__version__",
|
|
119
|
+
"assignments",
|
|
120
|
+
"get",
|
|
121
|
+
"ps",
|
|
122
|
+
"list_assignments",
|
|
123
|
+
"extract",
|
|
124
|
+
"open_folder",
|
|
125
|
+
]
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|