מה ההבדל בין אלגוריתם dfs לבין אלגוריתם bfs?

אני יודע שאחד זה חיפוש לעומק והשני חיפוש לרוחב. השאלה היא מה ההבדל מבחינת יעילות, באיזה מקרים משתמשים בכל אחד מהאלגוריתמים?
תודה רבה על העזרה.