Answer:
I would suggest a balanced binary search tree or an AVL tree.
AVL tree is a self balancing binary tree. It maintains its BST properties with an additional property that difference between height of left sub-tree and right sub-tree of any node can’t be more than 1.
a). The time complexity for insertion in an AVL tree is O(log n)
b). For searching also, time complexity is O(log n) because the the tree is balanced.
Step-by-step explanation: