Этот код использует поставляемую функцию rand
в качестве оператора сравнения для метода Array.Sort
(http://msdn.microsoft.com/en-us/library/4b4fbfhk(VS.85).aspx)., поскольку функция Math.random (http://msdn.microsoft.com/en-us/library/41336409.aspx)) возвращает значение от 0 (включительно). ) до 1 (исключение), функция rand
вернет значение от 0,5 (включительно) до -0,5 (исключение).
Обычно sortFunction, предоставляемая методу Sort
, принимает 2 сравниваемых аргумента. Функция sortFunction сравнивает их и возвращает значение, которое означает:
- Отрицательный - первый элемент меньше, чем второй
- Ноль - предметы равны
- Положительный - первый элемент больше второго
При запуске метода sort
он использует это сравнение, чтобы определить, какие значения массива должны идти перед другими.
В случае вашего кода возвращаемое значение функции rand
является случайным и не имеет корреляции с данными. Это означает, что всякий раз, когда функция sort
пытается сравнить два значения в массиве, половина времени будет сообщать, что первый элемент меньше второго, а половина второго элемента меньше первого. Поскольку это делается по всей длине массива, элементы меняются случайным образом, и весь массив становится рандомизированным.