// Алгоритм сортировки для массива фиксированной длины. public static elem[] Sort_BookRecords(elem[] source_array) { // elem[] new_array = new elem[source_array.Length]; for (int i = 0; i < source_array.Length - 1; ++i) { for (int j = i; j < source_array.Length; ++j) { if (source_array[i].isn > source_array[j].isn) { elem tmp = source_array[i]; source_array[i] = source_array[j]; source_array[j] = tmp; } } } return(source_array); }
static void Main() { // Алгоритм ввода списка книжных карточек. Содержит информацию о коде, типи издания и наименовании. Console.Write("Введите количество новых книжных карточек: "); int bookRecordsNumber = int.Parse(Console.ReadLine()); elem[] elemArray = new elem[bookRecordsNumber]; for (int i = 0; i < elemArray.Length; ++i) { Console.WriteLine($"Обработка книжной карты номер {i + 1}"); Console.WriteLine("Введите код записи: "); while (!long.TryParse(Console.ReadLine(), out elemArray[i].isn)) { //elemArray[i].isn = long.Parse(Console.ReadLine()); Console.WriteLine("Введите код записи повторно: "); } Console.WriteLine("Введите тип издания: "); string typeElem = Console.ReadLine().Trim(); while (typeElem == "") { Console.WriteLine("Введите тип издания повторно: "); typeElem = Console.ReadLine().Trim(); } elemArray[i].type = typeElem; // Предусмотрение двусоставного строения наименования - фамилия автора и название книги через '#'. Console.WriteLine("Введите наименование: "); string nameElem = Console.ReadLine().Trim(); string[] splitted_nameElem = nameElem.Split(new Char[] { '#' }); while (nameElem == "" || splitted_nameElem.Length != 2 || splitted_nameElem[0] == "" || splitted_nameElem[1] == "") { Console.WriteLine("Введите наименование повторно: "); nameElem = Console.ReadLine().Trim(); splitted_nameElem = nameElem.Split(new Char[] { '#' }); } elemArray[i].name = nameElem; } // Применение алгоритма сортировки для массива фиксированной длины. Sort_BookRecords(elemArray); Console.WriteLine(); Console.WriteLine("Сортируем по КОДУ ISN:\n"); ShowArrayElements(elemArray); Console.WriteLine(); Console.WriteLine("Переносим данные в списочный массив типа ArrayList...\nСортируем по НАИМЕНОВАНИЮ:\n"); List <elem> myAL = new List <elem>(); // Алгоритм ввода набора записей и непрерывной сортировки по алфавиту (сортируется после каждого ввода) // по названию книги с использованием списочного массива List <elem> myAL. for (int i = 0; i < elemArray.Length; ++i) { myAL.Add(new elem(elemArray[i].isn, elemArray[i].type, elemArray[i].name)); myAL.Sort(new ElemNameComparer()); Console.WriteLine($"Этап добавления (по одному элементу): {i}"); PrintListElements(myAL); Console.WriteLine(); } Console.ReadKey(); }