Почему статичный void метод изменяет исходный массив? - C#
Формулировка задачи:
Я хочу сравнить эффективность алгоритмов сортировки, но вот столкнулся с такой проблемой.
Почему метод SelectSortUp(array) изменяет исходный массив, хотя вроде не должен?
public static void SelectSortUp(int[] arr) { for (int i = 0; i < arr.Length - 1; i++) { int min = i; for (int j = i + 1; j < arr.Length; j++) { if (arr[j] < arr[min]) { min = j; }//if }//for j int tmp = arr[i]; arr[i] = arr[min]; arr[min] = tmp; }//for i for (int i = 0; i < arr.Length; i++) { Console.Write("{0}\t", arr[i]); }//for i }//SelectSortUp sort public static void Main() { int[] array = new int[] {43,2,123,1,23,0,3,4 }; for(int i = 0; i < array.Length; i++) { Console.Write("{0}\t", array[i]); } Console.WriteLine("\nSorted1"); SelectSortUp(array); Console.WriteLine("\nNo Sorted"); for (int i = 0; i < array.Length; i++) { Console.Write("{0}\t", array[i]); } }//Main
Решение задачи: «Почему статичный void метод изменяет исходный массив?»
textual
Листинг программы
arr = new int[] { 10, 20, 23, 14, 5 };