In Preemptive Scheduling, tasks are switched based on priority while in non-preemptive Scheduling no switching takes place.
A preemptive algorithm has the overhead of switching the process from the ready state to the running state while Non-preemptive Scheduling has no such overhead of switching.