bfaceb86-a886-404c-9378-3a8fb918889a
bfaceb86-a886-404c-9378-3a8fb918889a
---
if result == -1:
print("Element is not present in array")
else:
print("Element is present at index", result)
plt.plot(n, time)
plt.xlabel('Number of Elements')
plt.ylabel('Time Taken')
plt.title('Time Complexity of Linear Search')
plt.show()
```
---
if result != -1:
print("Element is present at index", str(result))
else:
print("Element is not present in array")
---
txt = "AABAACAADAABAAAABAA"
pat = "AABA"
search(pat, txt)
```
---
arr = []
n = int(input("Enter number of elements: "))
for i in range(0, n):
element = int(input("Enter element: "))
arr.append(element)
insertionSort(arr)
print("Sorted array is:")
for i in range(len(arr)):
print("%d" % arr[i])
def heapSort(arr):
n = len(arr)
for i in range(n, -1, -1):
heapify(arr, n, i)
for i in range(n-1, 0, -1):
arr[i], arr[0] = arr[0], arr[i]
heapify(arr, i, 0)
---
class Graph:
def __init__(self):
self.graph = defaultdict(list)
g = Graph()
g.addEdge(0, 1)
g.addEdge(0, 2)
g.addEdge(1, 2)
g.addEdge(2, 0)
g.addEdge(2, 3)
g.addEdge(3, 3)
---
visited = set()
---
while unseenNodes:
minNode = None
for node in unseenNodes:
if minNode is None:
minNode = node
elif shortest_distance[node] < shortest_distance[minNode]:
minNode = node
currentNode = goal
while currentNode != start:
try:
path.insert(0, currentNode)
currentNode = predecessor[currentNode]
except KeyError:
print('Path not reachable')
break
path.insert(0, start)
if shortest_distance[goal] != infinity:
print('Shortest distance is ' + str(shortest_distance[goal]))
print('And the path is ' + str(path))
graph = {
'A': {'B': 5, 'C': 1},
'B': {'A': 5, 'C': 2, 'D': 1},
'C': {'A': 1, 'B': 2, 'D': 4, 'E': 8},
'D': {'B': 1, 'C': 4, 'E': 3, 'F': 6},
'E': {'C': 8, 'D': 3},
'F': {'D': 6}
}
---
V = 5
graph = [
[0, 2, 0, 6, 0],
[2, 0, 3, 8, 5],
[0, 3, 0, 0, 7],
[6, 8, 0, 0, 9],
[0, 5, 7, 9, 0]
]
def minKey(key, mstSet):
min_val = sys.maxsize
for v in range(V):
if key[v] < min_val and not mstSet[v]:
min_val = key[v]
min_index = v
return min_index
def primMST():
key = [sys.maxsize] * V
parent = [None] * V
key[0] = 0
mstSet = [False] * V
parent[0] = -1
for _ in range(V):
u = minKey(key, mstSet)
mstSet[u] = True
for v in range(V):
if graph[u][v] > 0 and not mstSet[v] and key[v] > graph[u][v]:
key[v] = graph[u][v]
parent[v] = u
print("Edge \tWeight")
for i in range(1, V):
print(parent[i], "-", i, "\t", graph[i][parent[i]])
primMST()
```
---
n = len(graph)
dist = [[float('inf') for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
dist[i][j] = graph[i][j]
for k in range(n):
for i in range(n):
for j in range(n):
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
print(dist)
```
---
def transitive_closure(graph):
closure_matrix = [[0 for _ in range(len(graph))] for _ in range(len(graph))]
for i in range(len(graph)):
for j in graph[list(graph.keys())[i]]:
closure_matrix[i][list(graph.keys()).index(j)] = 1
for k in range(len(graph)):
for i in range(len(graph)):
for j in range(len(graph)):
closure_matrix[i][j] = closure_matrix[i][j] or (closure_matrix[i]
[k] and closure_matrix[k][j])
transitive_closure(graph)
```
---
---
---
---
dist_matrix = np.array([
[0, 10, 15, 20],
[10, 0, 35, 25],
[15, 35, 0, 30],
[20, 25, 20, 0]
])
num_cities = 4
---
---
These programs cover all the algorithms discussed in the PDF. Let me know if you
need any clarifications or further assistance!