Я считаю, что наилучшим способом в данном конкретном случае будет банальный эксперимент. Он даст вам больше информации, чем любое жонглирование формулами.
sort.Slice использует алгоритм quicksort, сложность по памяти O(log n)
sort.SliceStable использут алгоритм mergesort, сложность которого соответственно O(n)
jcmvbkbc, вроде оба случая могут быть.
Если компилятор умеет оптимизировать хвостовую рекурсию, то O(1), если не умеет, то на хранение кадров стека уходит O(log N)