add shell sort implementation