It is known that the motions in real world video sequences are irregular. So it may be suitable for a search algorithm to find motion vectors for a certain sequence, but the algorithm may not be suitable for other sequences. Therefore, it seems to be a better idea to find out the characteristics of each block and to apply a proper search algorithm to find motion vectors for the real world video sequences. In this paper we propose an adaptive search algorithm (ASA). In ASA we deploy three block matching algorithms (BMAs) for finding motion vectors. Two causal neighboring blocks with respect to the current block are chosen to calculate the difference between the motion vectors of the two blocks for finding a motion vector of the current block. Then ASA chooses an appropriate algorithm out of the three BMAs by analysing the difference. Simulation results show that, compared to previous techniques, ASA is much more robust on most of the sequences, produces better performance in terms of motion compensation errors, and also reduces the computational requirements for finding motion vectors.