Shell sort and selection sort are sorting algorithms. Shell sort improves on insertion sort by having elements spaced further apart initially and sorting these groups before finishing with adjacent elements. Selection sort works by finding the minimum element and swapping it to the front of the unsorted section in each pass. Both algorithms have average complexity of Ο(n^2) time but shell sort can perform better than selection sort for medium sized data sets.