Skip to content

Commit d655dfd

Browse files
committed
added some sorts
1 parent 8b7025c commit d655dfd

File tree

8 files changed

+83
-23
lines changed

8 files changed

+83
-23
lines changed

Diff for: Advance-Data-Structure/PYTHON/custom_sort.py

+21-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
arr = [[100, 200], [200, 1300], [1000, 1250], [20, 1300]]
22

33

4-
import functools
4+
# import functools
55

66

7-
def compare(x, y):
8-
if x[1] < y[1]:
9-
return -1
10-
if x[1] == y[1]:
11-
if x[0] < y[0]:
12-
return -1
13-
return 1
7+
# def compare(x, y):
8+
# if x[1] < y[1]:
9+
# return -1
10+
# if x[1] == y[1]:
11+
# if x[0] < y[0]:
12+
# return -1
13+
# return 1
1414

1515

16-
arr = sorted(arr, key=functools.cmp_to_key(compare))
16+
# arr = sorted(arr, key=functools.cmp_to_key(compare))
17+
18+
# print(arr)
19+
1720

18-
print(arr)
21+
import functools
22+
23+
def compare(x, y):
24+
if y[1] > x[1]:
25+
return 1
26+
return -1
27+
28+
arr = sorted(arr, key=functools.cmp_to_key(compare))
29+
print(arr)

Diff for: Advance-Data-Structure/PYTHON/graph/bfs_2d.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ def bfs_2d(grid, ROW, COLUMN, visited, row, column):
2424
visited[row][column] = True
2525

2626
while queue:
27-
front = queue.popleft()
28-
x = front[0]
29-
y = front[1]
27+
x, y = queue.popleft()
3028
print(grid[x][y], end=' ')
3129

3230
for i in range(4):

Diff for: Advance-Data-Structure/PYTHON/graph/dfs_2d.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ def dfs_2d(grid, ROW, COLUMN, visited, row, column):
2828
queue = [(row, column)]
2929

3030
while queue:
31-
top = queue.pop()
32-
# print(top, top[0], top[1], '===')
33-
x = top[0]
34-
y = top[1]
31+
x, y = queue.pop()
3532

3633
if not isValid(x, y, ROW, COLUMN, visited):
3734
continue

Diff for: Advance-Data-Structure/PYTHON/tree/bst.py

+55-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,29 @@ def insert(self, data):
1919
else:
2020
self.right = BinarySearchTreeNode(data)
2121

22+
def delete(self, data):
23+
if not self:
24+
return None
25+
elif data < self.data:
26+
if self.left:
27+
self.left = self.left.delete(data)
28+
elif data > self.data:
29+
if self.right:
30+
self.right = self.right.delete(data)
31+
else:
32+
if not self.left and not self.right:
33+
return None
34+
if not self.left:
35+
return self.right
36+
if not self.right:
37+
return self.left
38+
39+
# take minimum value from right subtree
40+
rightMinVal = self.right.findMin()
41+
self.data = rightMinVal
42+
self.right = self.right.delete(rightMinVal)
43+
return self
44+
2245
def search(self, data):
2346
if self.data == data:
2447
return True
@@ -82,14 +105,43 @@ def buildTree(elementList):
82105
return root
83106

84107

85-
if __name__ == '__main__':
86-
elementList = [234, 12, 1, 3234, 23, 4, 1, 100]
87-
tree = buildTree(elementList)
108+
def printTree(tree):
109+
if not tree:
110+
print('Tree empty!!!')
111+
return
112+
88113
print('pre order traversal: ', tree.preOrderTraversal())
89114
print('in order traversal: ', tree.inOrderTraversal())
90115
print('post order traversal: ', tree.postOrderTraversal())
116+
117+
118+
def deleteAndCheck(tree, data):
119+
print('\ndeleting: ', data)
120+
if not tree:
121+
print('Tree empty!!!')
122+
return tree
123+
124+
tree = tree.delete(data)
125+
printTree(tree)
126+
return tree
127+
128+
129+
if __name__ == '__main__':
130+
elementList = [234, 12, 1, 3234, 23, 4, 1, 100]
131+
# elementList = [12]
132+
tree = buildTree(elementList)
133+
printTree(tree)
91134
print('search 12: ', tree.search(12))
92135
print('search 110: ', tree.search(110))
93136
print('min value: ', tree.findMin())
94137
print('max value: ', tree.findMax())
95138
print('sum of elements: ', sum(tree.inOrderTraversal()))
139+
tree = deleteAndCheck(tree, 12)
140+
tree = deleteAndCheck(tree, 123456)
141+
tree = deleteAndCheck(tree, 1)
142+
tree = deleteAndCheck(tree, 234)
143+
tree = deleteAndCheck(tree, 4)
144+
tree = deleteAndCheck(tree, 100)
145+
tree = deleteAndCheck(tree, 23)
146+
tree = deleteAndCheck(tree, 3234)
147+
tree = deleteAndCheck(tree, 12)

Diff for: Advance-Data-Structure/sqrt_decomposition.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ int main() {
3939
}
4040

4141
/*
42-
---------
42+
---------f
4343
INPUT:
4444
9
4545
1 1 1 2 2 2 3 3 3

Diff for: Dynamic-Programming/longestPalindromeSubsequence.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ int L(string s, int i, int j) {
1414
else return max(L(s, i+1, j), L(s, i, j-1));
1515
}
1616

17+
18+
1719
/*
1820
1921
dp[][] :: for"TURBOVENTILATOR"
@@ -59,7 +61,7 @@ int lps_2D(string s, int n) {
5961
int lps_1D(string s, int n) {
6062
int dp[n];
6163
for (int i = n-1; i >= 0; i--) {
62-
int back_up = 0;
64+
int back_up = 0;r
6365
for (int j = i; j < n; j++) {
6466
if (i == j) dp[j] = 1;
6567
else if (s[i] == s[j]) {

Diff for: Sorting-Algorithms/quick_sort.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def quick_sort(arr):
1818
greater_part = []
1919

2020
for x in arr:
21-
if x < pivot:
21+
if x < pivot
2222
lower_part.append(x)
2323
else:
2424
greater_part.append(x)
File renamed without changes.

0 commit comments

Comments
 (0)