Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2ee27d3

Browse files
Update README.md
1 parent 698d793 commit 2ee27d3

File tree

1 file changed

+231
-51
lines changed

1 file changed

+231
-51
lines changed

‎README.md

Lines changed: 231 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Competitive Programming Algorithm Library in Python
22

3-
competitivepython is a library of algorithms and data structures implemented in Python. It is designed to be a useful resource for developers who need to implement common algorithms and data structures in their projects.
3+
competitivepython is an open-source library of algorithms and data structures implemented in Python. It offers a collection of frequently used algorithms and data structures that can be directly used in any Python-based project.
44

55
## Features
66

7-
- Implements a wide range of algorithms and data structures, including:
7+
- Provides implementations for several common algorithms and data structures such as:
88
- Searches: Binary Search, Linear Search, KMP Pattern Search
99
- Graphs: BFS, DFS, Dijkstra
1010
- Sorting: Bubble Sort, Insertion Sort, Shell Sort, Selection Sort, Bucket Sort, Merge Sort, Tim Sort, Quick Sort, Heap Sort, Radix Sort
1111
- Trees: Binary Search Tree
12-
- Easy to use and understand, with well-documented code
13-
- Portable and compatible with Python 3
12+
- Codebase is easy to use, well-documented, and compatible with Python 3.
1413
- Open source and available under the MIT license
1514

1615
## Installation
@@ -23,78 +22,259 @@ To install competitivepython library, simply run the following command:
2322

2423
## Usage
2524

26-
To use PyPy in your project, simply import the desired algorithm or data structure and use it as needed. For example:
25+
To use competitivepython in your project, import the desired algorithm or data structure and use it as needed. Below are some example use cases:
2726

28-
- searches implementation example
27+
- Implementing searches:
28+
- Binary Search
2929
```
3030
from competitivepython import searches
31-
32-
result = searches.binary_search([1, 2, 3, 4, 5], 3)
33-
result2 = searches.linear_search([5, 7, 9, 2, 4, 10], 4)
31+
32+
arr = [1, 2, 3, 4, 5]
33+
target = 3
34+
35+
result = searches.binary_search(arr, target)
36+
37+
print("Binary Search:",result)
38+
39+
'''Output:
40+
Binary Search: 2
41+
'''
42+
```
43+
- Linear Search
44+
```
45+
from competitivepython import searches
46+
47+
arr = [5, 7, 9, 2, 4, 10]
48+
target = 4
49+
50+
result = searches.linear_search(arr, target)
51+
52+
print("Linear Search:",result)
53+
54+
'''Output:
55+
Linear Search: 4
56+
'''
57+
```
58+
- Knuth–Morris–Pratt string Search
59+
```
60+
from competitivepython import searches
61+
3462
txt = "ABABDABACDABABCABAB"
3563
pat = "ABABCABAB"
36-
result3 = searches.kmp_search(pat,txt)
37-
print(result) # Output: 2
38-
print(result2) # Output: 4
39-
print(result3) # Output: [10]
64+
65+
result = searches.kmp_search(pat,txt)
66+
67+
print("KMP Search:",result)
68+
69+
'''Output:
70+
KMP Search: [10]
71+
'''
72+
```
73+
74+
- Implementing sorting:
75+
- Bubble Sort
4076
```
77+
from competitivepython import sorting
4178
42-
- sorting implementation example
79+
arr = [112, 6, 7, 12, 15]
80+
81+
result = sorting.bubble_sort(arr)
82+
print('bubble sort:', result)
83+
84+
''' Output ---
85+
bubble sort: [6, 7, 12, 15, 112]
86+
'''
87+
```
88+
- Bucket Sort
89+
```
90+
from competitivepython import sorting
91+
92+
arr = [112, 6, 7, 12, 15]
93+
94+
result = sorting.bucket_sort(arr)
95+
print('bucket sort:', result)
96+
97+
''' Output ---
98+
bucket sort: [6, 7, 12, 15, 112]
99+
'''
100+
```
101+
- Heap Sort
43102
```
44103
from competitivepython import sorting
45104
46105
arr = [112, 6, 7, 12, 15]
106+
107+
result = sorting.heap_sort(arr)
108+
109+
print('heap sort:', result)
47110
48-
res = sorting.bubble_sort(arr)
49-
res1 = sorting.bucket_sort(arr)
50-
res2 = sorting.heap_sort(arr)
51-
res3 = sorting.insertion_sort(arr)
52-
res4 = sorting.merge_sort(arr)
53-
res5 = sorting.quick_sort(arr)
54-
res6 = sorting.radix_sort(arr)
55-
res7 = sorting.selection_sort(arr)
56-
res8 = sorting.shell_sort(arr)
57-
res9 = sorting.tim_sort(arr)
111+
''' Output ---
112+
heap sort: [6, 7, 12, 15, 112]
113+
'''
114+
```
115+
- Insertion Sort
116+
```
117+
from competitivepython import sorting
58118
59-
print('bubble sort:', res, 'bucket sort:', res1, 'heap sort:', res2, 'insertion sort:', res3, 'merge sort:', res4,
60-
'quick sort:', res5, 'radix sort:', res6, 'selection sort:', res7, 'shell sort:', res8, 'tim sort:', res9)
119+
arr = [112, 6, 7, 12, 15]
120+
121+
result = sorting.insertion_sort(arr)
122+
123+
print('insertion sort:', result)
124+
125+
''' Output ---
126+
insertion sort: [6, 7, 12, 15, 112]
127+
'''
128+
```
129+
- Merge Sort
130+
```
131+
from competitivepython import sorting
132+
133+
arr = [112, 6, 7, 12, 15]
134+
135+
result = sorting.merge_sort(arr)
136+
137+
print('merge sort:', result)
61138
62139
''' Output ---
63-
bubble sort: [6, 7, 12, 15, 112] bucket sort: [6, 7, 12, 15, 112] heap sort: [6, 7, 12, 15, 112]
64-
insertion sort: [6, 7, 12, 15, 112] merge sort: [6, 7, 12, 15, 112] quick sort: [6, 7, 12, 15, 112]
65-
radix sort: [6, 7, 12, # 15, 112] selection sort: [6, 7, 12, 15, 112] shell sort: [6, 7, 12, 15, 112]
66-
tim sort: [6, 7, 12, 15, 112]
140+
merge sort: [6, 7, 12, 15, 112]
141+
'''
142+
```
143+
- Quick Sort
144+
```
145+
from competitivepython import sorting
146+
147+
arr = [112, 6, 7, 12, 15]
148+
149+
result = sorting.quick_sort(arr)
150+
151+
print('quick sort:', result)
152+
153+
''' Output ---
154+
quick sort: [6, 7, 12, 15, 112]
67155
'''
68156
```
157+
- Radix Sort
158+
```
159+
from competitivepython import sorting
160+
161+
arr = [112, 6, 7, 12, 15]
162+
163+
result = sorting.radix_sort(arr)
164+
165+
print('radix sort:', result)
69166
70-
- graphs implementation example
167+
''' Output ---
168+
radix sort: [6, 7, 12, # 15, 112]
169+
'''
170+
```
171+
- Selection Sort
71172
```
72-
from competitivepython import graphs
173+
from competitivepython import sorting
73174
74-
graph = {
75-
'A': {'B': 1, 'C': 4},
76-
'B': {'A': 1, 'C': 2, 'D': 5},
77-
'C': {'A': 4, 'B': 2, 'D': 1},
78-
'D': {'B': 5, 'C': 1},
79-
}
80-
start = 'A'
81-
end = 'D'
175+
arr = [112, 6, 7, 12, 15]
176+
177+
result = sorting.selection_sort(arr)
178+
179+
print('selection sort:', result)
82180
83-
result = graphs.breadth_first_search(graph, 'C')
84-
result2 = graphs.depth_first_search(graph, 'C')
85-
result3 = graphs.dijkstra(graph, start, end)
86-
print("bfs:",result)
87-
print("dfs:",result2)
88-
print("dijikstra:",result3)
181+
''' Output ---
182+
selection sort: [6, 7, 12, 15, 112]
183+
'''
184+
```
185+
- Shell Sort
186+
```
187+
from competitivepython import sorting
188+
189+
arr = [112, 6, 7, 12, 15]
190+
191+
result = sorting.shell_sort(arr)
192+
193+
print('shell sort:', result)
89194
90-
''' Output--
91-
bfs: {'B', 'D', 'C', 'A'}
92-
dfs: {'B', 'D', 'C', 'A'}
93-
dijikstra: {'distance': 4, 'path': ['B', 'C', 'D']}
195+
''' Output ---
196+
shell sort: [6, 7, 12, 15, 112]
94197
'''
95198
```
199+
- Tim Sort
200+
```
201+
from competitivepython import sorting
202+
203+
arr = [112, 6, 7, 12, 15]
204+
205+
result = sorting.tim_sort(arr)
206+
207+
print('tim sort:', result)
208+
209+
''' Output ---
210+
tim sort: [6, 7, 12, 15, 112]
211+
'''
212+
```
213+
214+
- Implementing graphs:
215+
- Breadth First Search (or Breadth First Traversal)
216+
```
217+
from competitivepython import graphs
218+
219+
graph = {
220+
'A': {'B': 1, 'C': 4},
221+
'B': {'A': 1, 'C': 2, 'D': 5},
222+
'C': {'A': 4, 'B': 2, 'D': 1},
223+
'D': {'B': 5, 'C': 1},
224+
}
225+
start = 'A'
226+
end = 'D'
227+
228+
result = graphs.breadth_first_search(graph, 'C')
229+
230+
print("bfs:",result)
231+
232+
''' Output--
233+
bfs: {'B', 'D', 'C', 'A'}
234+
'''
235+
```
236+
- Depth First Search(or Depth First Traversal)
237+
```
238+
from competitivepython import graphs
239+
240+
graph = {
241+
'A': {'B': 1, 'C': 4},
242+
'B': {'A': 1, 'C': 2, 'D': 5},
243+
'C': {'A': 4, 'B': 2, 'D': 1},
244+
'D': {'B': 5, 'C': 1},
245+
}
246+
start = 'A'
247+
end = 'D'
248+
249+
result = graphs.depth_first_search(graph, 'C')
250+
print("dfs:",result)
251+
252+
''' Output--
253+
dfs: {'B', 'D', 'C', 'A'}
254+
'''
255+
```
256+
- Dijkstra’s Shortest Path
257+
```
258+
from competitivepython import graphs
259+
260+
graph = {
261+
'A': {'B': 1, 'C': 4},
262+
'B': {'A': 1, 'C': 2, 'D': 5},
263+
'C': {'A': 4, 'B': 2, 'D': 1},
264+
'D': {'B': 5, 'C': 1},
265+
}
266+
start = 'A'
267+
end = 'D'
268+
269+
result = graphs.dijkstra(graph, start, end)
270+
print("dijikstra:",result)
271+
272+
''' Output--
273+
dijikstra: {'distance': 4, 'path': ['B', 'C', 'D']}
274+
'''
275+
```
96276
97-
- trees implementation example
277+
- Implementing trees:
98278
99279
```
100280
from competitivepython import trees

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /