Skip to content

Commit 63c4171

Browse files
Create Basic Algorithms using Python.py
1 parent 45e8bcf commit 63c4171

File tree

1 file changed

+211
-0
lines changed

1 file changed

+211
-0
lines changed

Basic Algorithms using Python.py

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# Binary Search
2+
3+
def binarySearch(num,arr):
4+
beg = 0
5+
end = len(arr)-1
6+
while(beg<=end):
7+
mid = (beg+end)//2
8+
if(arr[mid]==num):
9+
return mid
10+
elif(arr[mid]>num):
11+
end = mid - 1
12+
else:
13+
beg = mid + 1
14+
return -1
15+
16+
#Binary Search Using Recursion
17+
18+
def binarySearch(num,arr,beg,end):
19+
if(beg>end):
20+
print("NOT FOUND")
21+
return
22+
mid = (beg + end)//2
23+
if(arr[mid]==num):
24+
print("FOUND AT ",mid)
25+
elif(arr[mid]>num):
26+
binarySearch(num,arr,beg,mid-1)
27+
else:
28+
binarySearch(num,arr,mid+1,end)
29+
30+
31+
# Bubble Sort
32+
33+
def bubbleSort(arr):
34+
for i in range(0,len(arr)-1):
35+
for j in range(0,len(arr)-i-1):
36+
if(arr[j+1]<arr[j]):
37+
(arr[j],arr[j+1])=(arr[j+1],arr[j])
38+
39+
arr=[5,1,4,2,8,9]
40+
bubbleSort(arr)
41+
print(arr)
42+
43+
44+
#insetion sort
45+
46+
def insertionSort(arr):
47+
for i in range(1,len(arr)):
48+
pos = i
49+
while(pos>0 and arr[pos-1]>arr[pos]):
50+
(arr[pos-1],arr[pos])=(arr[pos],arr[pos-1])
51+
pos=pos-1
52+
arr=[5,1,4,2,8,9]
53+
insertionSort(arr)
54+
print(arr)
55+
56+
57+
# Selection Sort
58+
59+
def selectionSort(arr):
60+
for i in range(len(arr)):
61+
minpos = i
62+
for j in range(i,len(arr)):
63+
if(arr[j]<arr[minpos]):
64+
minpos=j
65+
(arr[i],arr[minpos])=(arr[minpos],arr[i])
66+
67+
arr=[5,1,4,2,8,9]
68+
selectionSort(arr)
69+
print(arr)
70+
71+
72+
#Quick Sort Choosing Pivot as the Last Element
73+
74+
def partition(arr,low,high):
75+
i = low - 1
76+
pivot = arr[high]
77+
for j in range(low,high):
78+
if(arr[j]<=pivot):
79+
i=i+1
80+
(arr[i],arr[j])=(arr[j],arr[i])
81+
(arr[i+1],arr[high])=(arr[high],arr[i+1])
82+
return i+1
83+
def quickSort(arr,low,high):
84+
if(low<high):
85+
part = partition(arr,low,high)
86+
quickSort(arr,low,part-1)
87+
quickSort(arr,part+1,high)
88+
arr=[2,1,3,4,4,0,9]
89+
quickSort(arr,0,len(arr)-1)
90+
print(arr)
91+
92+
93+
94+
# QuickSort
95+
96+
def quickSort(arr,low,high):
97+
if(low<high):
98+
i=low
99+
j=low+1
100+
while(j<=high):
101+
if(arr[j]<=arr[low]):
102+
i=i+1
103+
(arr[j],arr[i])=(arr[i],arr[j])
104+
j=j+1
105+
(arr[i],arr[low])=(arr[low],arr[i])
106+
part = i
107+
quickSort(arr,low,part-1)
108+
quickSort(arr,part+1,high)
109+
arr=[2,1,3,4,4,0,9,-2,-1]
110+
quickSort(arr,0,len(arr)-1)
111+
print(arr)
112+
113+
114+
#Quick Sort Choosing Pivot as the Last Element
115+
116+
def partition(arr,low,high):
117+
i=low
118+
j=low+1
119+
while(j<=high):
120+
if(arr[j]<=arr[low]):
121+
i=i+1
122+
(arr[j],arr[i])=(arr[i],arr[j])
123+
j=j+1
124+
(arr[i],arr[low])=(arr[low],arr[i])
125+
return i
126+
def quickSort(arr,low,high):
127+
if(low<high):
128+
part = partition(arr,low,high)
129+
quickSort(arr,low,part-1)
130+
quickSort(arr,part+1,high)
131+
arr=[2,1,3,4,4,0,9]
132+
quickSort(arr,0,len(arr)-1)
133+
print(arr)
134+
135+
136+
#Merge Sort
137+
138+
def merge(arr,beg,mid,end):
139+
i=beg
140+
j=mid+1
141+
temp = []
142+
while(i<=mid and j<=end):
143+
if(arr[i]>=arr[j]):
144+
temp.append(arr[j])
145+
j=j+1
146+
if(arr[j]>arr[i]):
147+
temp.append(arr[i])
148+
i=i+1
149+
if(i>mid):
150+
while(j<=end):
151+
temp.append(arr[j])
152+
j=j+1
153+
if(j>end):
154+
while(i<=mid):
155+
temp.append(arr[i])
156+
i=i+1
157+
k=0
158+
for i in range(beg,end+1):
159+
arr[i] = temp[k]
160+
k=k+1
161+
def mergesort(arr,beg,end):
162+
if(beg<end):
163+
mid = (beg+end)//2
164+
mergesort(arr,beg,mid)
165+
mergesort(arr,mid+1,end)
166+
merge(arr,beg,mid,end)
167+
168+
arr=[2,1,3,4,4,0,9]
169+
mergesort(arr,0,len(arr)-1)
170+
print(arr)
171+
172+
173+
# BFS
174+
175+
def bfs(arr,start):
176+
visited = []
177+
parent=[]
178+
q=[]
179+
for i in range(len(arr)):
180+
visited.append(start)
181+
visited[start]=1
182+
parent.append(-1)
183+
q.append(start)
184+
while(len(q)!=0):
185+
j = q.pop(0)
186+
print(j," -->")
187+
for k in range(len(arr[j])):
188+
if(visited[arr[j][k]]==0):
189+
visited[arr[j][k]]=1
190+
parent[arr[j][k]]=j
191+
q.append(arr[j][k])
192+
193+
194+
# DFS
195+
196+
n=int(input("Enter Number of Nodes :"))
197+
arr=[]
198+
for i in range(n):
199+
l=[int(x) for x in input().split()]
200+
arr.append(l)
201+
visited = [0]*n
202+
parent = [-1]*n
203+
def dfs(start):
204+
visited[start] = 1
205+
print(start)
206+
for i in range(len(arr[start])):
207+
if(visited[arr[start][i]]==0):
208+
parent[arr[start][i]] = start
209+
dfs(arr[start][i])
210+
dfs(0)
211+

0 commit comments

Comments
 (0)