Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 111

Сортировка массива

23.11.2013, 14:01. Показов 926. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Вот код
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
class Program
{
    static void Main(string[] args)
    {
        string[] studentsName = new string[]
        {
            "Alexander Gudok",
            "Stanislav Velchik",
            "Malinochka Olga",
            "Solomko Ludmila",
            "Dmitry Vorotnuk",
            "Stanislav Velchik",
            "Dmitry Vorotnuks",
            "Violetta Jankovich",
            "Karpenko Darya",
            "Alena Mankovskaya"
 
        };
 
        Student[] journal = new Student[studentsName.Length];
        for (int i = 0; i < journal.Length; i++)
        {
            journal[i] = new Student(i + 1, studentsName[i]);
            
        }
 
        for (int i = 0; i < journal.Length; i++)
        {
            Console.WriteLine(journal[i].number + " -> " +journal[i].name );
        }
        Console.ReadLine();
 
        Array.Sort(journal);
 
        for (int i = 0; i < journal.Length; i++)
        {
            journal[i].number = i + 1;
            Console.WriteLine(journal[i].number + " -> " + journal[i].name);
        }
        Console.ReadLine();
 
 
 
 
    }
}
 
class Student : IComparable
{
    public int number;
    public string name;
 
    public Student(int number, string name)
    {
        this.name = name;
        this.number = number;
    }
 
 
    int IComparable.CompareTo(object input)
    {
        Student temp = (Student)input;
        int Length;
 
        if (this.name.Length > temp.name.Length)
            Length = temp.name.Length;
        else
            Length = this.name.Length;
 
        for (int i = 0; i < Length; i++)
        {
            if (this.name[i] > temp.name[i])
                return 1;
            if (this.name[i] < temp.name[i])
                return -1;
            if ((i == Length - 1))
            {
                if (this.name.Length < temp.name.Length)
                    return -1;
                if (this.name.Length > temp.name.Length)
                    return 1;
 
                if (this.name.Length == temp.name.Length)
                    return 0;
            }
 
        }
        return 0;
 
 
 
    }
 
}


В этой строке
C#
1
if (this.name[i] > temp.name[i])
Не пойму что за name в this.name и что за name в temp.name?
Подскажите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2013, 14:01
Ответы с готовыми решениями:

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве. Класс описать с помощью...

Сортировка массива подсчётом и ошибка "индекс находится вне границ массива"
Всем привет! В общем такое задание: Разработать 4 функции, реализующие задачу: &quot;Сортировка массивов (пирамидальная, Хоара,...

Сортировка массива(
Извините за делитанство. Только недавно занялся изучением этого языка. Не могу сделать задание ( . Необходимо Отсортировать одномерный...

5
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
23.11.2013, 14:06
name — поле в классе Student.
this.name — это поле name объекта, на котором вызывается метод.
temp.name — это поле name объекта, ссылка на который передается в метод.
1
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 111
23.11.2013, 15:06  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
this.name — это поле name объекта, на котором вызывается метод.
temp.name — это поле name объекта, ссылка на который передается в метод.
А на какой объект вызывается метод или передается если я передал в метод сразу весь массив
C#
1
Array.Sort(journal);
Добавлено через 42 минуты
уп!
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
23.11.2013, 15:32
ccobbra, вызываться будет на том элементе массива, который сравнивается в данный момент, а передаваться будет тот элемент, с которым будет производиться сравнение.
1
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 111
23.11.2013, 15:55  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
ccobbra, вызываться будет на том элементе массива, который сравнивается в данный момент, а передаваться будет тот элемент, с которым будет производиться сравнение.
А как определяется какой сравнивается и с каким производится сравнение?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
23.11.2013, 16:37
ccobbra, дык зависит от алгоритма сортировки
Конкретно в Array.Sort используется быстрая сортировка, в которой массив дробится на части относительно выбранного опорного элемента и в каждой из частей все элементы сравниваются с опорным и переносятся в левую или правую половину в зависимости от больше/меньше опорного.
Потом каждая из частей дробится и так до тех пор, пока весь массив не отсортируется.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2013, 16:37
Помогаю со студенческими работами здесь

Сортировка массива
Есть коллекция List&lt;int&gt; в которой содержатся числа. Необходимо, вывести пары индексов элементов, соответствующие минимальным значениям...

Сортировка массива
Здравствуйте, возникла следующая проблема. Грубо говоря, у меня есть массив, в котором содержится что-то важное. Есть второй массив с...

Сортировка массива
Нужно отсортировать 2й массив по параметру ArrivalTime, с привязкой к параметру number и вывести на экран using System; using...

Сортировка массива
Здравствуйте, подскажите пожалуйста как отсортировать строчный массив по 3 столбцу? пример массива: 1 2 3 4 5 6 7 8 9

Сортировка массива
Здравствуйте! Я хочу отсортировать массив с использованием Linq. Делаю это так: public class Data { public string param1; public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru