Selection sort is an in-place comparison-based sorting algorithm that divides an array into two parts - a sorted part on the left and an unsorted part on the right. It finds the smallest element in the unsorted part and swaps it with the leftmost element to add it to the sorted part. This process continues moving the unsorted boundary to the right until the array is fully sorted. Selection sort has an average and worst-case time complexity of O(n2) making it unsuitable for large data sets.