Skip to content

Commit 4f6e0c9

Browse files
committed
init
1 parent a5f7882 commit 4f6e0c9

13 files changed

+277
-43
lines changed

datastructures/array1.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
stock_price = [[298, 305, 320, 301, 292],
2+
]
3+
for price in stock_price:
4+
print(price)

datastructures/big_O_of_n.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def get_squared_numbers(numbers):
2+
squared_numbers = []
3+
for n in numbers:
4+
squared_numbers.append(n*n)
5+
return squared_numbers
6+
7+
numbers = [2,5,8,9]
8+
print(get_squared_numbers(numbers))

datastructures/binary_search.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import random
2+
import time
3+
4+
def naive_search(l, target):
5+
for i in range(len(l)):
6+
if l[i] == target:
7+
return i
8+
return -1
9+
10+
def binary_search(l, target, low=None, high=None):
11+
if low is None:
12+
low = 0
13+
if high is None:
14+
high = len(l) - 1
15+
16+
midpoint = (low + high) // 2
17+
18+
if high < low:
19+
return -1
20+
21+
if l[midpoint] == target:
22+
return midpoint
23+
elif target < l[midpoint]:
24+
return binary_search(l, target, low, midpoint-1)
25+
else:
26+
return binary_search(l, target, midpoint+1, high)
27+
28+
if __name__=='__main__':
29+
l = [1, 3, 5, 10, 12]
30+
target = 10
31+
print(naive_search(l, target))
32+
print(binary_search(l, target))
33+
34+
length = 10000
35+
sorted_list = set()
36+
while len(sorted_list) < length:
37+
sorted_list.add(random.randint(-3*length, 3*length))
38+
sorted_list = sorted(list(sorted_list))
39+
40+
start = time.time()
41+
for target in sorted_list:
42+
naive_search(sorted_list, target)
43+
end = time.time()
44+
print("Naive search time: ", (end - start)/length, "seconds")
45+
46+
start = time.time()
47+
for target in sorted_list:
48+
binary_search(sorted_list, target)
49+
end = time.time()
50+
print("Binary search time: ", (end - start)/length, "seconds")

datastructures/bubblesort.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
def bubble_sort(elements):
2+
size = len(elements)
3+
4+
for i in range(size-1):
5+
swapped = False
6+
for j in range(size-1-i):
7+
if elements[j] > elements[j+1]:
8+
tmp = elements[j]
9+
elements[j] = elements[j+1]
10+
elements[j+1] = tmp
11+
swapped = True
12+
if not swapped:
13+
break
14+
15+
16+
if __name__ == '__main__':
17+
elements = [5,9,2,1,67,34,88,34]
18+
19+
#elements = [1,2,4]
20+
#elements = ["Zed", "Yama", "Abaho", "Carcar"]
21+
22+
bubble_sort(elements)
23+
print(elements)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
exp = [2200, 2350, 2600, 2130, 2190]
2+
print(exp[1]-exp[0])
3+
print(exp[0]+exp[1]+exp[2])
4+
print(2000 in exp)
5+
exp.append(1980)
6+
print(exp)
7+
exp[3] = exp[3] - 200
8+
print(exp)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
heros = ['spider man', 'thor', 'hulk', 'iron man', 'captain america']
2+
print(len(heros))
3+
heros.append('black panther')
4+
print(heros)
5+
heros.remove('black panther')
6+
print(heros)
7+
heros.insert(3, 'black panther')
8+
print(heros)
9+
heros[1:3] = ['doctor strange']
10+
print(heros)
11+
heros.sort()
12+
print(heros)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
max = int(input("Enter max number: "))
2+
3+
odd_numbers = []
4+
5+
for i in range(1, max):
6+
if i % 2 == 1:
7+
odd_numbers.append(i)
8+
9+
print("Odd numbers are: ", odd_numbers)

datastructures/linked_list.py

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
class Node:
2+
def __init__(self, data=None, next=None):
3+
self.data = data
4+
self.next = next
5+
6+
class LinkedList:
7+
def __init__(self):
8+
self.head = None
9+
10+
def insert_at_beginning(self, data):
11+
node = Node(data, self.head)
12+
self.head = node
13+
14+
def print(self):
15+
if self.head is None:
16+
print("Linked list is empty")
17+
return
18+
19+
itr = self.head
20+
llstr = ''
21+
22+
while itr:
23+
llstr += str(itr.data) + '-->'
24+
itr = itr.next
25+
26+
print(llstr)
27+
28+
def insert_at_end(self, data):
29+
if self.head is None:
30+
self.head = Node(data, None)
31+
return
32+
33+
itr = self.head
34+
while itr.next:
35+
itr = itr.next
36+
37+
itr.next = Node(data, None)
38+
39+
def insert_values(self, data_list):
40+
self.head = None
41+
for data in data_list:
42+
self.insert_at_end(data)
43+
44+
def get_length(self):
45+
count = 0
46+
itr = self.head
47+
while itr:
48+
count += 1
49+
itr = itr.next
50+
51+
return count
52+
53+
def remove_at(self, index):
54+
if index < 0 or index >= self.get_length():
55+
raise Exception("This is not a valid index")
56+
57+
if index == 0:
58+
self.head = self.head.next
59+
return
60+
61+
count = 0
62+
itr = self.head
63+
while itr:
64+
if count == index - 1:
65+
itr.next = itr.next.next
66+
break
67+
68+
itr = itr.next
69+
count += 1
70+
71+
def insert_at(self, index, data):
72+
if index < 0 or index > self.get_length():
73+
raise Exception("This is not a valid index")
74+
75+
if index == 0:
76+
self.insert_at_beginning(data)
77+
return
78+
79+
count = 0
80+
itr = self.head
81+
while itr:
82+
if count == index -1:
83+
node = Node(data, itr.next)
84+
itr.next = node
85+
break
86+
87+
itr = itr.next
88+
count += 1
89+
90+
def insert_after_value(self, data_after, data_to_insert):
91+
if self.head is None:
92+
return
93+
94+
if self.head.data == data_after:
95+
self.head.next = Node(data_to_insert, self.head.next)
96+
return
97+
98+
itr = self.head
99+
while itr:
100+
if itr.data == data_after:
101+
itr.next = Node(data_to_insert, itr.next)
102+
break
103+
104+
itr = itr.next
105+
106+
def remove_by_value(self, data):
107+
if self.head is None:
108+
return
109+
110+
if self.head == data:
111+
self.head = self.head.next
112+
return
113+
114+
itr = self.head
115+
while itr.next:
116+
if itr.next.data == data:
117+
itr.next = itr.next.next
118+
break
119+
itr = itr.next
120+
121+
122+
if __name__=="__main__":
123+
ll = LinkedList()
124+
ll.insert_values(["banana", "mango", "grapes", "orange"])
125+
ll.print()
126+
ll.insert_after_value("mango","apple")
127+
ll.print()
128+
ll.remove_by_value("orange")
129+
ll.print()
130+
ll.remove_by_value("figs")
131+
ll.print()
132+
ll.remove_by_value("banana")
133+
ll.remove_by_value("mango")
134+
ll.remove_by_value("apple")
135+
ll.remove_by_value("grapes")
136+
ll.print()
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
exp = [2200, 2350, 2600, 2130, 2190]
2+
print(exp[1]-exp[0])
3+
print(exp[0]+exp[1]+exp[2])
4+
print(2000 in exp)
5+
exp.append(1980)
6+
print(exp)
7+
exp[3] = exp[3] - 200
8+
print(exp)

jackenpoy.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
def play():
44
print("Laro tayo ng Bato-Bato-Pik!")
5-
user = input("I-type ang 'b' para sa bato, 'p' para sa papel at 'g' para sa gunting.\n")
6-
computer = random.choice(['b', 'p', 'g'])
5+
user = input("Pumili sa bato, papel o gunting.\n")
6+
computer = random.choice(['bato', 'papel', 'gunting'])
7+
8+
print(f"Ang napili mo ay {user}, ang napili ng kalaban mo ay {computer}")
79

810
if user == computer:
911
return "Tabla ang laro"
@@ -14,8 +16,8 @@ def play():
1416
return "Ikaw ay natalo."
1517

1618
def is_win(player, opponent):
17-
if (player == 'b' and opponent == 'g') or (player == 'g' and opponent == 'p') \
18-
or (player == 'p' and opponent == 'b'):
19+
if (player == 'bato' and opponent == 'gunting') or (player == 'gunting' and opponent == 'papel') \
20+
or (player == 'papel' and opponent == 'bato'):
1921
return True
2022

2123

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy