1) Hill climbing is a local search algorithm that continuously moves in the direction of increasing value to find the optimal solution. It terminates when no neighbor has a higher value.
2) It has a linear time complexity but constant space complexity. It is used to optimize mathematical problems like the traveling salesman problem.
3) There are different types of hill climbing algorithms like simple hill climbing, steepest ascent hill climbing, and stochastic hill climbing that vary in how they evaluate neighbor states.