Additional topics

for self reference, to read and find the applications

Flask: https://faun.pub/deploy-flask-app-with-nginx-using-gunicorn-7fda4f50066a

CGI in python: https://www.edureka.co/blog/python-cgi/

best python practices: https://realpython.com/tutorials/best-practices/

bots: https://realpython.com/how-to-make-a-discord-bot-python/

Arrays

  • Set, Check element at a particular index: O(1)

  • Searching: O(n) if array is unsorted and O(log n) if array is sorted and something like a binary search is used,

  • As pointed out by Aivean, there is no Delete operation available on Arrays. We can symbolically delete an element by setting it to some specific value, e.g. -1, 0, etc. depending on our requirements

  • Similarly, Insert for arrays is basically Set as mentioned in the beginning

ArrayList:

  • Add: Amortized O(1)

  • Remove: O(n)

  • Contains: O(n)

  • Size: O(1)

Linked List:

  • Inserting: O(1), if done at the head, O(n) if anywhere else since we have to reach that position by traveseing the linkedlist linearly.

  • Deleting: O(1), if done at the head, O(n) if anywhere else since we have to reach that position by traveseing the linkedlist linearly.

  • Searching: O(n)

Doubly-Linked List:

  • Inserting: O(1), if done at the head or tail, O(n) if anywhere else since we have to reach that position by traveseing the linkedlist linearly.

  • Deleting: O(1), if done at the head or tail, O(n) if anywhere else since we have to reach that position by traveseing the linkedlist linearly.

  • Searching: O(n)

Stack:

  • Push: O(1)

  • Pop: O(1)

  • Top: O(1)

  • Search (Something like lookup, as a special operation): O(n) (I guess so)

Queue/Deque/Circular Queue:

  • Insert: O(1)

  • Remove: O(1)

  • Size: O(1)

Binary Search Tree:

  • Insert, delete and search: Average case: O(log n), Worst Case: O(n)

Red-Black Tree:

  • Insert, delete and search: Average case: O(log n), Worst Case: O(log n)

Heap/PriorityQueue (min/max):

  • Find Min/Find Max: O(1)

  • Insert: O(log n)

  • Delete Min/Delete Max: O(log n)

  • Extract Min/Extract Max: O(log n)

  • Lookup, Delete (if at all provided): O(n), we will have to scan all the elements as they are not ordered like BST

HashMap/Hashtable/HashSet:

  • Insert/Delete: O(1) amortized

  • Re-size/hash: O(n)

  • Contains: O(1)

Last updated

Was this helpful?