all sort algorithm