In this inquiry, the interviewer aims to gauge your understanding of sorting algorithms within the realm of computer science. It particularly emphasizes your grasp of two essential aspects of algorithm efficiency: time complexity and space complexity. Time complexity pertains to the computational complexity that indicates the duration an algorithm requires to execute, based on the size of its input. This is typically represented using Big O notation, which outlines the upper limit of time complexity in the worst-case scenario. Space complexity denotes the amount of memory an algorithm requires to complete its execution. It illustrates the volume of memory space needed for storing data such as variables, constants, and additional space. To effectively respond to this question, you should discuss several widely used sorting algorithms (such as QuickSort, MergeSort, Bubble Sort, Insertion Sort, Selection Sort, etc.). Describe their time and space complexities and provide a brief explanation regarding the reasons behind their respective complexities.