# Time complexities of different data structures

Time Complexity is a concept in computer science that deals with the quantification of the amount of time taken by a set of code or algorithm to process or run as a function of the amount of input. In other words, the time complexity is how long a program takes to process a given input. The efficiency of an algorithm depends on two parameters:

- Time Complexity
- Space Complexity

**Time Complexity:** It is defined as the number of times a particular instruction set is executed rather than the total time is taken. It is because the total time took also depends on some external factors like the compiler used, processor’s speed, etc.

**Space Complexity:** It is the total memory space required by the program for its execution.

### __Best case time complexity of different data structures for different operations__

Data structure | Access | Search | Insertion | Deletion |

Array | O(1) | O(1) | O(1) | O(1) |

Stack | O(1) | O(1) | O(1) | O(1) |

Queue | O(1) | O(1) | O(1) | O(1) |

Singly Linked list | O(1) | O(1) | O(1) | O(1) |

Doubly Linked List | O(1) | O(1) | O(1) | O(1) |

Hash Table | O(1) | O(1) | O(1) | O(1) |

Binary Search Tree | O(log n) | O(log n) | O(log n) | O(log n) |

AVL Tree | O(log n) | O(log n) | O(log n) | O(log n) |

B Tree | O(log n) | O(log n) | O(log n) | O(log n) |

Red Black Tree | O(log n) | O(log n) | O(log n) | O(log n) |

__Worst Case time complexity of different data structures for different operations__

__Worst Case time complexity of different data structures for different operations__

Data structure | Access | Search | Insertion | Deletion |

Array | O(1) | O(N) | O(N) | O(N) |

Stack | O(N) | O(N) | O(1) | O(1) |

Queue | O(N) | O(N) | O(1) | O(1) |

Singly Linked list | O(N) | O(N) | O(1) | O(1) |

Doubly Linked List | O(N) | O(N) | O(1) | O(1) |

Hash Table | O(N) | O(N) | O(N) | O(N) |

Binary Search Tree | O(N) | O(N) | O(N) | O(N) |

AVL Tree | O(log N) | O(log N) | O(log N) | O(log N) |

Binary Tree | O(N) | O(N) | O(N) | O(N) |

Red Black Tree | O(log N) | O(log N) | O(log N) | O(log N) |

__Average time complexity of different data structures for different operations__

__Average time complexity of different data structures for different operations__

Data structure | Access | Search | Insertion | Deletion |

Array | O(1) | O(N) | O(N) | O(N) |

Stack | O(N) | O(N) | O(1) | O(1) |

Queue | O(N) | O(N) | O(1) | O(1) |

Singly Linked list | O(N) | O(N) | O(1) | O(1) |

Doubly Linked List | O(N) | O(N) | O(1) | O(1) |

Hash Table | O(1) | O(1) | O(1) | O(1) |

Binary Search Tree | O(log N) | O(log N) | O(log N) | O(log N) |

AVL Tree | O(log N) | O(log N) | O(log N) | O(log N) |

B Tree | O(log N) | O(log N) | O(log N) | O(log N) |

Red Black Tree | O(log N) | O(log N) | O(log N) | O(log N) |