Alpha–beta pruning
In the best case, the complexity of the algorithm is O() while the worst case is O() where b is the branching factor, that is how much each move splits into future options on average, and d is the depth, as in on average how many possible moves are made into the game.