Heuristic search uses heuristic functions to help optimize problem solving by trying to find solutions in the fewest steps or lowest cost. A heuristic function estimates the cost of reaching the goal state from any given node. There are two types of heuristic functions: admissible functions, which never overestimate cost, and non-admissible functions, which may overestimate cost. Admissible heuristics help guide search towards optimal solutions.