Приведенная ниже программа демонстрирует, как использовать возможность
манипуляции элементами массива для их сортировки. В программе
применен алгоритм пузырьковой сортировки.
Писал по книжке)
namespace BubbleSort
{
class Program
{
public static void OutputStudentArray(Student[] students)
{
foreach(Student s in students)
{
Console.WriteLine(s.GetString());
}
}
static void Main(string[] args)
{
Student[] students = new Student[5];
students[0] = Student.NewStudent("Homer", 0);
students[1] = Student.NewStudent("Lisa", 4.0);
students[2] = Student.NewStudent("Bart", 2.0);
students[3] = Student.NewStudent("Marge", 3.0);
students[4] = Student.NewStudent("Maggie", 3.5);
Console.WriteLine("До сортировки");
OutputStudentArray(students);
Console.WriteLine("Сортировка");
Student.Sort(students);
Console.WriteLine("Вывод отсортированного списка");
OutputStudentArray(students);
Console.WriteLine("Нажмите <Enter>");
Console.ReadLine();
}
}
}
namespace BubbleSort
{
class Student
{
public string sName;
public double dGrade = 0.0;
public static Student NewStudent(string sName, double dGrade)
{
Student student = new Student();
student.sName = sName;
student.dGrade = dGrade;
return student;
}
public string GetString()
{
string s = "";
s += dGrade;
s += " - ";
s += sName;
return s;
}
public static void Sort(Student[] students)
{
bool bRepeatLoop;
do
{
bRepeatLoop = false;
for (int index = 0; index < (students.Length - 1); index++)
{
if (students[index].dGrade < students[index + 1].dGrade)
{
Student to = students[index];
Student from = students[index + 1];
students[index] = from;
students[index + 1] = to;
bRepeatLoop = true;
}
}
} while (bRepeatLoop);
}
}
}