-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSortList.py
More file actions
54 lines (49 loc) · 1.59 KB
/
SortList.py
File metadata and controls
54 lines (49 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""
written by : Muhammad Farooq Memon
Position: Student
Institute: Union College
"""
def find_middle(alist, target):
"""
The following function finds a given number in a provided list
:param alist: a list of all the numbers
:param target: the number that is to be searched inside a list
:return: True or False based on the presence of the target in the list
"""
if len(alist) == 1:
if target == alist[0]:
#print(target)
#print(alist[0])
return True
else:
#print(target)
#print(alist[0])
return False
if len(alist) == 0:
#print(target)
#print(alist[0])
return False
if len(alist) % 2 == 0:
mid_pos = int(len(alist) / 2)
#print(mid_pos, 'h')
#print(alist)
if target > alist[int(mid_pos)]:
return find_middle(alist[mid_pos: len(alist)], target)
if target == alist[int(mid_pos)]:
return True
else:
return find_middle(alist[0: mid_pos], target)
else:
mid_pos = int((len(alist) + 1) / 2)
#print(mid_pos, 'd')
#print(alist)
if target > alist[int(mid_pos)]:
return find_middle(alist[mid_pos: len(alist)], target)
if target == alist[int(mid_pos)]:
return True
else:
return find_middle(alist[0: mid_pos], target)
if __name__ == "__main__":
alist = [2, 4, 6, 7, 9, 10, 11, 12, 13, 13, 13, 14, 15]
target = find_middle(alist, 14)
print(target)