Sh
Shamshod

помогите пожалуйста изменить сортировку с возрастающей на убывающей C#

подскажите пожалуйста, как сделать эту сортировку в убывающем порядке, она у меня в возрастающем

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
struct work
{
public string name;
public string surname;
public string prop;
public string dok;
public int year;

}

namespace ConsoleApplication4
{
class Program
{
static void create_array(work[] a)
{
string path = "C:\\Users\\dfs\\Desktop\\2.txt";
StreamReader sr = new StreamReader(path, Encoding.GetEncoding(1251));
string line;
int i = 0;
while ((line = sr.ReadLine()) != null)
{
string[] s = line.Split(' ');
[ссылка появится после проверки модератором] = s[0];
a.surname = s[1];
a.prop = s[2];
a.dok = s[3];
a.year = int.Parse(s[4]);

i++;

}
sr.Close();
}
public static void quickSort(work[] arr, int low, int high)
{
int i = low;
int j = high;
work x = arr[(low + high) / 2];
do
{
while (arr.year < x.year) i++;
while (arr[j].year > x.year) j--;
if (i <= j)
{
work temp = arr;
arr = arr[j];
arr[j] = temp;
i++;
j--;
}
}
while (i < j);
if (low < j)
quickSort(arr, low, j);
else
if (i < high)
quickSort(arr, i, high);
else
{
Console.WriteLine("Наша база данных, после обработки M записей" + "\n");
print_array(arr);
shell_sort(arr);
}
}

public static void shell_sort(work [] a)
{
int step = a.Length;
while (step > 0)
{
for (int i = 0; i < a.Length - step; i++)
{
int j = i;
while ((j >= 0) && (a[j + step].year < a[j].year))
{
work temp = a[j];
a[j] = a[j + step];
a[j + step] = temp;
j--;
}
}
step /= 2;
}
}

public static void print_to_fail(work[] a)
{
string s = "C:\\Users\\dfs\\Desktop\\3.txt";
StreamWriter sr = new StreamWriter(s);
for (int i = 0; i < a.Length; i++)
sr.WriteLine("{0} {1} {2} {3} ", [ссылка появится после проверки модератором] a.surname, a.prop, a.year);
sr.Close();
}

static void print_array(work[] a)
{
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine("{0} {1} {2} {3} ", [ссылка появится после проверки модератором] a.surname, a.prop, a.year);
}
Console.WriteLine("\n");
}
static void Main(string[] args)
{
work[] data = new work[7];
create_array(data);
print_array(data);
Console.WriteLine("Введите количество записей, которые сортуруются быстрой сортировкой " + "\n\n");
int M = int.Parse(Console.ReadLine());
quickSort(data, 0, M);
Console.WriteLine("Наша база данных, после полного упорядочения" + "\n");
print_array(data);
}
}
}

Вика
Вика

А зачем вы изобретаете велосипед? Почему бы не использовать коллекции в которых уже реализована сортировка?

Пример
var list = new List{ 1, 3, 2};
list.Sort(); // 1, 2, 3
//Если нужно по-убыванию, то можно дополнительно инвертировать
list.Reverse(); // 3, 2, 1

Если вы работаете с объектом, то такой пример
public class Animal
{
public int Id;
public string Name;
}
var animals = new List
{
new Animal {Id = 1, Name = "Tiger"},
new Animal {Id = 3, Name = "Lion"},
new Animal {Id = 2, Name = "Zebra"}
};
animals = animals.OrderBy(animal => animal.Id).ToList(); // 1, 2, 3
animals = animals.OrderByDescending(animal => animal.Id).ToList(); // 3, 2, 1

Похожие вопросы
y=-3x+7 это возрастающая или убывающая функция? Обьясните как определять какая возрастающая а какая наоборот убывающая?
при каких условиях функция возрастает, и убывает?
tg возрастающая или убывающая функция? или вопрос некорректный?
Здравствуйте. помогите пожалуйста (сортировка вставками)
Помогите пожалуйста обьяснить, какой оператор и что он делает в сортировке пузырьком и усовершенствованым в C#
Сегодня какое солнце убывающее или возрастающее?
подскажите пожалуйста что изменить в коде быстрой сортировки методом Шелла С#
На данном графике функция возрастает или убывает?
Сортировка массива на языке C# с использованием процедур.
C# помогите сделать сортировку данных по первой цифре в строке