The widespread use of three-dimensional laser scanning makes point cloud registration essential for model reconstruction. Although iterative closest point (ICP) is a widely used algorithm for automatic and accurate point cloud registration, the ICP algorithm is time-intensive and typically falls in local optima. We employ the normal vector angle of the 3D model and integrate a heuristic search into the ICP algorithm to improve its efficiency, especially while registering complex surfaces. We compare this improved ICP algorithm with the original ICP algorithm and variants of the algorithm in terms of convergence, robustness, and response from a poor initial cloud point position to verify that the proposed improvements outperform the conventional ICP algorithm in the three evaluated aspects when processing point clouds with complex surfaces.