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

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

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

Author24 — интернет-сервис помощи студентам
Привет. Вот код
Кликните здесь для просмотра всего текста
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2013, 14:01
Ответы с готовыми решениями:

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

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

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

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

5
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
23.11.2013, 14:06 2
name — поле в классе Student.
this.name — это поле name объекта, на котором вызывается метод.
temp.name — это поле name объекта, ссылка на который передается в метод.
1
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 111
23.11.2013, 15:06  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
this.name — это поле name объекта, на котором вызывается метод.
temp.name — это поле name объекта, ссылка на который передается в метод.
А на какой объект вызывается метод или передается если я передал в метод сразу весь массив
C#
1
Array.Sort(journal);
Добавлено через 42 минуты
уп!
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
23.11.2013, 15:32 4
ccobbra, вызываться будет на том элементе массива, который сравнивается в данный момент, а передаваться будет тот элемент, с которым будет производиться сравнение.
1
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 111
23.11.2013, 15:55  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
ccobbra, вызываться будет на том элементе массива, который сравнивается в данный момент, а передаваться будет тот элемент, с которым будет производиться сравнение.
А как определяется какой сравнивается и с каким производится сравнение?
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
23.11.2013, 16:37 6
ccobbra, дык зависит от алгоритма сортировки
Конкретно в Array.Sort используется быстрая сортировка, в которой массив дробится на части относительно выбранного опорного элемента и в каждой из частей все элементы сравниваются с опорным и переносятся в левую или правую половину в зависимости от больше/меньше опорного.
Потом каждая из частей дробится и так до тех пор, пока весь массив не отсортируется.
1
23.11.2013, 16:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2013, 16:37
Помогаю со студенческими работами здесь

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

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

Сортировка массива
Здравствуйте, подскажите пожалуйста как отсортировать строчный массив по 3 столбцу? пример...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru