diff --git a/docs/source/searching.rst b/docs/source/searching.rst index d8ff44b..5931480 100644 --- a/docs/source/searching.rst +++ b/docs/source/searching.rst @@ -10,3 +10,9 @@ Binary Search -------------- .. autofunction:: pydsa.binary_search + + +Linear Search +------------- + +.. autofunction:: pydsa.linear_search diff --git a/pydsa/__init__.py b/pydsa/__init__.py index c3e31cb..ff0174a 100644 --- a/pydsa/__init__.py +++ b/pydsa/__init__.py @@ -7,3 +7,5 @@ from .sleep_sort import sleep_sort from .bfs import bfs from .binary_search import binary_search +from .linear_search import linear_search +from .queue import queue diff --git a/pydsa/linear_search.py b/pydsa/linear_search.py new file mode 100644 index 0000000..ce63c1f --- /dev/null +++ b/pydsa/linear_search.py @@ -0,0 +1,14 @@ +def linear_search(List, item): + """ + Find the element in list using linear search + >>> from pydsa import linear_search + >>> List = [3, 4, 6, 8, 12, 15, 26] + >>> item = 6 + >>> linear_search(List, item) + 2 + """ + index = len(List) + for i in range(0, index): + if List[i] == item: + return i + return -1 diff --git a/pydsa/queue.py b/pydsa/queue.py new file mode 100644 index 0000000..23c793b --- /dev/null +++ b/pydsa/queue.py @@ -0,0 +1,33 @@ +class queue(object): + """ + >>> from pydsa import queue + >>> q = queue() + >>> q.enqueue(5) + >>> q.enqueue(8) + >>> q.enqueue(19) + >>> q.dequeue() + 5 + """ + def __init__(self): + self.List = [] + + def isEmpty(self): + return self.List == [] + + def enqueue(self, item): + """ + Insert element in queue. + """ + self.List.append(item) + + def dequeue(self): + """ + Remove element from front of the Queue. + """ + return self.List.pop(0) + + def size(self): + """ + Return size of Queue. + """ + return len(self.List) diff --git a/pydsa/tests/test_linear_search.py b/pydsa/tests/test_linear_search.py new file mode 100644 index 0000000..d444c1e --- /dev/null +++ b/pydsa/tests/test_linear_search.py @@ -0,0 +1,7 @@ +from pydsa.linear_search import linear_search + + +def test_linear_search(): + List = [4, 17, 9, 12, 5, 16] + item = 12 + assert linear_search(List, item) == 3 diff --git a/pydsa/tests/test_queue.py b/pydsa/tests/test_queue.py new file mode 100644 index 0000000..b5ea2f7 --- /dev/null +++ b/pydsa/tests/test_queue.py @@ -0,0 +1,12 @@ +from pydsa.queue import queue + + +def test_queue(): + q = queue() + q.enqueue(5) + q.enqueue(9) + q.enqueue(12) + q.enqueue(20) + assert q.dequeue() == 5 + assert q.dequeue() == 9 + assert q.size() == 2