Hey id like to also suggest using 2 different lists, 1 for the activated sprites, and 1 not activated.
I don't know how you have you levels, but assuming each is like a big rectangle. You could easily sort the enemys in the non activated list by there X position.
You would still need to check if the enemy was visible, but not have as many checks.
When the enemy is visible put it into the activated list until it dies. Then you update every sprite in the active list, with each sprites AI finding the right action. If the enemys can get the players postion, you could make the enemy sleep if the distance is large enough. Mabye then kill the enemy is the distance is huge.
Hope that helps