Initialization:
if node has received packet , go to step 3
else if , go to step 7
    else the node is idle, stay in step 2
if   is a new packet, go to step 4
else node has received repeated , let , and go to step 5
node has received the broadcast packet for the first time. Let
   where indicates the times of the repeated reception of
   if   , node abandons its attempt to rebroadcast, and go to step 8
   else if    , go to step 5
    else node abandons the rebroadcast, then go to step 8
Let , where is the preceding
  node of node at time
node updates its uncovered set by deleting nodes that are covered
  by and , and calculate its new coverage degree
  if   , it abandons its attempt to rebroadcast, and go to step 8
  else if , go to step 7
    else delay the rebroadcast by based on formula (4)
Check current time :
if   , go to step 2
else update the field of by the position of and rebroadcasts
end
Algorithm 1: Algorithm description. Broadcast Algorithm with Least Redundancy (BALR).