Составить консольное приложение, осуществляющее сортировку вставками - C#
Формулировка задачи:
Программа должна считывать данные из файла и сортировать по возрастанию числа, результаты сортировки должна выводить в файл. При этом должна применяться сортировка вставками.
Помогите найти ошибку, программа выводит в файл только нули.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApplication2 { class Program { static int[] readDataFromFile(string filename) { Console.WriteLine("Try to reading"); var tempArray = File.ReadAllLines(filename); Console.WriteLine("ReadAllLines"); var numberArray = new int[tempArray.Length]; for (int i = 0; i < tempArray.Length; i++) { Console.WriteLine(tempArray[i]); } return numberArray; } static void writeDataToFile(int[] array) { using (var sw = new StreamWriter("output.txt")) { for (int i = 0; i < array.Length; i++) sw.WriteLine(array[i].ToString()); } } static void InsertionSort(int[] array) { int N = array.Length; for (int i = 1; i < N; i++) { int newElement = array[i]; int location = i - 1; while (location >= 0 && array[location] > newElement) { array[location + 1] = array[location]; location--; } array[location + 1] = newElement; } } static void Main(string[] args) { Console.WriteLine("Введите путь к файлу:"); string filename = Console.ReadLine(); var numberArray = readDataFromFile(filename); InsertionSort(numberArray); writeDataToFile(numberArray); Console.ReadLine(); } } }
Решение задачи: «Составить консольное приложение, осуществляющее сортировку вставками»
textual
Листинг программы
using System; using System.IO; using System.Text; namespace FirstTask { class sortObject { public int row; public string content; public sortObject(string _content) { var row = _content.Split(';')[1].Trim(); content = _content; } public static void QuickSort(sortObject[] a, int l, int r) { sortObject temp; int x = a[l + (r - l) / 2].row; int i = l; int j = r; while (i <= j) { while (a[i].row < x) i++; while (a[j].row > x) j--; if (i <= j) { temp = a[i]; a[i] = a[j]; a[j] = temp; i++; j--; } } if (i < r) QuickSort(a, i, r); if (l < j) QuickSort(a, l, j); } public static void QuickSort(string[] array) { var sortObjects = new sortObject[array.Length]; for (int i = 0; i < array.Length; i++) sortObjects[i] = new sortObject(array[i]); QuickSort(sortObjects, 0, array.Length - 1); for (int i = 0; i < sortObjects.Length; i++) array[i] = sortObjects[i].content; } } static class dataFile { public static string[] readData(string filename) { var tempArray = File.ReadAllLines(filename); var sortObjects = new string[tempArray.Length - 1]; for (int i = 1; i < tempArray.Length; i++) sortObjects[i - 1] = tempArray[i]; return sortObjects; } public static void writeData(string filename, string[] sortedArray) { using (var sw = new StreamWriter(filename)) { foreach (string data in sortedArray) sw.WriteLine(data); } } } class Program { static void Main(string[] args) { Console.WriteLine("Введите путь к файлу"); string filename = Console.ReadLine(); var dataToSort = dataFile.readData(filename); sortObject.QuickSort(dataToSort); dataFile.writeData("output.txt", dataToSort); Console.WriteLine("Файл был успешно отсортирован!"); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д