Quick Sort exhibits the optimal average-case time complexity at \( O(n \log n) \). This efficient divide-and-conquer method recursively sorts sub-arrays after partitioning the main array. On average, its performance surpasses that of other sorting algorithms.
- Bubble Sort (A) has an average-case time complexity of \( O(n^2) \), rendering it significantly slower than Quick Sort in most scenarios.
- Selection Sort (B) also presents an average-case time complexity of \( O(n^2) \).
- Insertion Sort (D), while having an average-case time complexity of \( O(n^2) \), can outperform other \( O(n^2) \) algorithms when dealing with small or nearly sorted arrays.
Therefore, (C), Quick Sort with \( O(n \log n) \), is the correct choice.