algorithm alpha-beta pruning artificial intelligence associative array backtracking best-first search bidirectional search big o notation breadth-first search brute-force search chess computer science constant time constraint satisfaction problem data structure depth-first search depth-limited search evolution federated search game tree genetic programming graph theory graph traversal greater london hash table heuristic function implementation input interpolation search iterative deepening depth-first search leaf node linear search minimax nearest neighbour algorithm no free lunch in search and optimization quantum computer random access recommender system search space secretary problem selection algorithm self-balancing binary search tree simulated annealing sorting algorithm string searching algorithm suffix tree tabu search ternary search uniform-cost search zero-sum