Hello Suraj,
Triggers get a list of objects (up to 200), but process each object individually. The before trigger as a whole will complete its batch before the after trigger fires. However, if you have more than 200 objects, there will be multiple before triggers (1 trigger context for each batch of up to 200 objects). When each trigger context finishes, the records in that trigger become eligible for after triggers. In your after triggers, you can’t be certain that it is the same set of 200 objects that were in your original before trigger since a user may have created/updated a record which would get included in the trigger batch.
As an alternative to triggers, have you thought about using Workflow Rules and Field Updates/Email Alerts? Those are both non-programming approaches.