|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2014, 23:23 | #1 |
Пользователь
Регистрация: 31.03.2013
Сообщений: 52
|
Массив и методы
подскажите пожалуйста, как сделать так, чтобы массив из метода Metod использовался в обоих методах сортировки и не изменял своего значения. Вот так почему-то не работает.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication1 { class Sorty { public int[] MatrixRand(int[] Arr) { int a = 0; Random r = new Random(); Console.WriteLine("Первоначальная матрица"); using (StreamWriter textFile = new StreamWriter("D:/test.txt")) { for (int i = 0; i < Arr.Length; i++) { Arr[i] = r.Next(11); a = Arr[0]; Console.Write(Arr[i] + " "); textFile.Write(Arr[i] + " "); } textFile.Close(); } return Arr; } public int[] Metod(int[] Ar) { int[] arr = System.IO.File.ReadAllText("D:/test.txt").Split(' ').Select(n => int.Parse(n)).ToArray(); return arr; } public void Out(int[] arr) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Сортировка пузырьком"); int b = 0; using (StreamWriter textFile = new StreamWriter("D:/sort.txt")) { for (int i = arr.Length - 1; i >= 1; i--) { for (int j = 0; j<i; j++) { if (arr[j] > arr[j + 1]) { b = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = b; } } textFile.Write(arr[i] + " "); } textFile.Close(); } for (int i = 0; i < arr.Length; i++) Console.Write(" " + arr[i]); } public void Sort2 (int[] arr) { Console.WriteLine ("Шейкерная сортировка"); int b = 0; int left = 0;//Левая граница int right = arr.Length - 1;//Правая граница while(left<right) { for (int i = left; i < right; i++)//Слева направо... { if (arr[i] > arr[i + 1]) { b = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = b; b= i; } } right = b;//Сохраним последнюю перестановку как границу if (left >= right) break;//Если границы сошлись выходим for (int i = right; i > left; i--)//Справа налево... { if (arr[i-1] > arr[i]) { b = arr[i]; arr[i] = arr[i-1]; arr[i -1] = b; b = i; } } left = b;//Сохраним последнюю перестановку как границу } for (int i = 0; i < arr.Length; i++) Console.Write(" " + arr[i]); } } class Program { static void Main(string[] args) { Console.WriteLine("Методы сортировки"); Sorty op1 = new Sorty(); int[] Ar = new int[10]; int[] result = op1.MatrixRand(Ar); op1.Out(result); } } } |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Методы сбора и анализа экспертных данных(методы: Ранжирование, непосредственная оценка), C# | Desired | Помощь студентам | 6 | 22.03.2014 13:33 |
Java!В программе создать одиночные объекты и массив объектов класса и вызвать методы. | Andros96 | Помощь студентам | 0 | 17.11.2013 15:41 |
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны | Koksa | Помощь студентам | 0 | 10.10.2011 11:26 |
массив указателей на методы класса? | cout | Общие вопросы C/C++ | 2 | 08.05.2008 09:43 |