Почему статичный void метод изменяет исходный массив? - C#

Узнай цену своей работы

Формулировка задачи:

Я хочу сравнить эффективность алгоритмов сортировки, но вот столкнулся с такой проблемой.
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
Почему метод SelectSortUp(array) изменяет исходный массив, хотя вроде не должен?

Решение задачи: «Почему статичный void метод изменяет исходный массив?»

textual
Листинг программы
arr = new int[] { 10, 20, 23, 14, 5 };

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы