Your company has been researching ways to improve the efficiency of 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.
• In C++ or Python, 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 search 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 sub lists during each step; however, for your assignment, you will build and algorithm that splits the list into 3 sub lists during each step.
• 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)?
Execute the program and provide .cpp or .py files and screenshots of the executed code. Let me know if you need additional details.