divide and conquer algorithm examples