Your company has been researching ways to improve the efficiency the mobile devices that it produces.
Your group is tasked with finding a way to reduce media retrieval time from a playlist that is in alphabetical order.
Your Algorithm Group has recently been reviewing the divide-and-conquer paradigm and has decided to test a divide and conquer approach.
Assignment Part 1 In C++, code a search algorithm that searches a list of strings for a particular song.
The searching algorithm will have two inputs: the playlist, which is a string array that contains a list of songs in alphabetical order; and a particular song, which is a string.
If the song is found in the list, the algorithm will return the index of the song, and it will return -1 otherwise.
This searching algorithm will employ a divide-and-conquer approach similar to that in binary search, but with a slight variation. In binary search, a list is split in 2 sublists during each step; however, for your assignment, you will build and algorithm that splits the list into 3 sublists during each step.
Part 2 What is the time complexity (in Big-O notation) of your algorithm with respect to the size of the playlist? How does this time complexity compare to the time complexity of binary search (in terms of Big-O)?