Привет всем, у меня вопрос по программе C#. Короче кто - то знает метод Шейкера(он заключается в следующем: проходишь одномерный массив и сразу находишь минимальный и максимальный элементы, затем помещаем мин. элемент в начало массива, а макс. в конец массива и так далее.)Тавк вот в чём моя проблема? есть программа, но я не знаю как из двумерного массива, который выводится у меня, сделать одномерный и потом провести сортировку методом Шейкера.Помогите пожалуйста!Я должен сдать работу в понедельник!Please....
| Код | using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.IO;
namespace Laba1 { class Program { static void Main(string[] args) { string tmp = ""; int[] tab = new int[120]; int ti = 0, w = 0;
//-------------------- FILE StreamReader sr = new StreamReader("d:\\a.txt"); string fromFile = sr.ReadToEnd();
for (w = 0; w < fromFile.Length; w++) { if (fromFile[w] != ' ') tmp = string.Concat(tmp, fromFile[w]); else { tab[ti++] = int.Parse(tmp); tmp = ""; } }
//----------------------- vivod znacenii iz faila int n, m, i = 0, j = 0; Console.WriteLine("VVEDITE N"); n = int.Parse(Console.ReadLine()); Console.WriteLine("VVEDITE M"); m = int.Parse(Console.ReadLine()); int[,] mas = new int[n, m];
for (int t = 0; t < ti; t++) { if (t >= n * m) break; mas[i, j] = tab[t];
if (((t + 1) % m) == 0) { i++; j = 0;
} else { j++; }
}
Console.WriteLine("vivod massiva iz faila:"); Console.WriteLine("\n"); for (i = 0; i < mas.GetLength(0); i++) { for (j = 0; j < mas.GetLength(1); j++) { Console.Write("\t" + mas[i, j]); } Console.WriteLine(); }
//----------------- Summa po stolbthy int[] summa = new int[n]; for (i = 0; i < mas.GetLength(0); i++) for (j = 0; j < mas.GetLength(1); j++) summa[i] += mas[i, j];
Console.Write("\t-------------------------\nSUM:");
for (j = 0; j < mas.GetLength(0); j++) { Console.Write("\t" + summa[j]); }
//--------------------- summa po massivu long sum = 0; foreach (int item in mas) { sum += item; } Console.Write("\n\n"); Console.WriteLine("sum vseh elementov = {0}", sum); Console.WriteLine();
//-------------------SORTIROVKA SHAKER--------------------- //Console.WriteLine("\n\n"); //Console.WriteLine("Sortirovka SHAKER: "); //int k = 0; //for (k = 0; k < n / 2; k++) //{ // for (i < k; i < n - k; i++) //{ // for (j < k; j < n - k; j++) // { // if (mas[i,j] > max) // { // max = mas[i,j]; // imax = i; // } // if (mas[i,j] < min) // { // min = mas[i,j]; // imin = i; // } // } // } // mas[imin] = mas[k]; // mas[k] = imin; // mas[imax] = mas[k]; // mas[k] = imax; // } // Console.WriteLine("\n\n"); // Console.WriteLine("Otsortirovannii massiv: "); // for (i = 0; i < mas.GetLength(0); i++) // { // for (j = 0; j < mas.GetLength(1); j++) // { // Console.WriteLine("\n\n"); // Console.Write("{0}\t", mas[i,j]); // // } // } // Console.Read(); // // } } // } |
|