In general loops are less efficient because they have to go through data one at a time no matter what. Recursion allows you to split the data into smaller pieces each time the function is called. In general terms the efficiency of loops is x and the efficiency of recursion is log(x)