In Bubble Sort, the flag-based approach works because it continuously checks adjacent elements and swaps them if they are in the wrong order. If during a pass, no swaps are made, it implies that the list is already sorted, hence terminating the sorting process.
However, Selection Sort doesn't benefit from this concept because it always needs to find the minimum (or maximum) element in the unsorted portion of the list and swap it with the first unsorted element. Even if the list is already sorted, Selection Sort would still iterate through the entire unsorted portion to find the minimum element, resulting in a time complexity of O(n) for the best case.
In other words, the nature of Selection Sort involves scanning through the entire unsorted portion in each iteration, regardless of whether the list is already sorted or not, which prevents it from achieving a best-case time complexity better than O(n).