Radix sort is a non-comparative sorting algorithm that sorts numeric keys by decomposing them into digits and sorting the digits individually. It works by representing keys as d-digit numbers in some base-k, then sorting the numbers by looking at one column of digits at a time from least to most significant. This requires d passes through the list, resulting in a time complexity of O(d(n+k)) where n is the number of keys and k is the maximum possible digit value, assuming d and k are constants. When d and k are O(n), the overall time complexity is O(n).