In this paper, we propose a distributed broadcasting algorithm for wireless ad hoc networks. In the algorithm, an efficient strategy is used to determine the forward status of a node by just checking whether there exists a ring that contains all its neighbors. The proposed algorithm is more efficient than the existing broadcasting algorithms in the literatures. That is, the size of the forwarding nodes found by our algorithm is smaller and the running time is faster than other broadcasting algorithms. Reducing the number of forwarding nodes will decrease the probability of transmission collision, and hence improve the packet delivery ratio. The algorithm runs in O(d2) time, where d is the maximum node degree. The full coverage is not guaranteed but as shown by the simulation results, the probability of full coverages can be over 99 percent when the network contains 100 or more nodes.