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

Отсортировать массив состоящий из типов инт и стринг методом пузырька

14.02.2013, 03:51. Показов 1650. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!

Нужно отсортировать массив состоящий из типов инт и стринг методом пузырька!!! Вот здесь (if(a[j - 1] > a[j]) {) выдает ошибку, с числами получилось, а как добавил текст так проблема и возникла(((
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2013, 03:51
Ответы с готовыми решениями:

Дан одномерный массив А, состоящий из N элементов. Отсортировать указанные элементы методом пузырька
Дан одномерный массив А, состоящий из N элементов. Отсортировать указанные элементы методом пузырька четырехзначные числа

Дан одномерный массив А, состоящий из N элементов. Отсортировать все его элементы улучшенным методом пузырька
Дан одномерный массив А, состоящий из N элементов. Отсортировать все его элементы улучшенным методом пузырька

Отсортировать массив методом пузырька, выполнить поиск элемента методом дихотомии
Отсортировать массив методом пузырька. Выполнить поиск элемента методом дихотомии, подсчитать количество итераций Начало есть...

7
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
14.02.2013, 04:01
емм а в начале цикла у вас j=0 ?
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 22
14.02.2013, 04:04  [ТС]
Цитата Сообщение от Sinys Посмотреть сообщение
емм а в начале цикла у вас j=0 ?
C#
1
2
3
4
5
6
for(int i = (a.Length - 1); i >= 0; i--) {
                for(int j = 1; j <= i; j++) {
                    if(a[j - 1] > a[j]) {
                        temp = a[j - 1];
                        a[j - 1] = a[j];
                        a[j] = temp;
0
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
14.02.2013, 04:08
Если бы вы с самого начала дали код, или хотя бы указали что писалось в ошибке все было бы проще...
Строки так сравнивать нельзя.
Как у вас идет определение какая строка "больше" или "меньше"?
Что например должно идти первым:
1) "ааа" или "ааб"
2) "аа" или "ааа"
3) "aб" или "ааа"
0
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 22
14.02.2013, 04:15  [ТС]
Цитата Сообщение от Sinys Посмотреть сообщение
Если бы вы с самого начала дали код, или хотя бы указали что писалось в ошибке все было бы проще...
Строки так сравнивать нельзя.
Как у вас идет определение какая строка "больше" или "меньше"?
Что например должно идти первым:
1) "ааа" или "ааб"
2) "аа" или "ааа"
3) "aб" или "ааа"
да я понимаю, в принципе все равно по какому определению будет сортировать, мне логику понять важней. Вот код, то есть до куда я дошел)))
Вложения
Тип файла: rar zadacha.rar (7.6 Кб, 5 просмотров)
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
14.02.2013, 09:46
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
class Car :IComparable<Car>
{
    public string Name { get; set; }
    public int Speed { get; set; }
 
 
 
     public int CompareTo(Car other)
    {
        if (this.Speed == other.Speed)
        {
            return this.Name.CompareTo(other.Name);
        }
        return other.Speed.CompareTo(this.Speed);
    }
 
    public override string ToString()
    {
        return this.Speed.ToString() + "," + this.Name;
    }
}
 
class Program
{
 
    public static void BubleSort<T>(T[] param) where T: IComparable<T>
    {
        T temp;
 
        for (int i = (param.Length - 1); i >= 0; i--)
        {
            for (int j = 1; j <= i; j++)
            {
                if (param[j - 1].CompareTo( param[j]) == -1)
                {
                    temp = param[j - 1];
                    param[j - 1] = param[j];
                    param[j] = temp;
                }
            }
        }
    }
 
    static void Main(string[] args)
    {
        Car[] garage = {
                new Car(){ Name="BMW", Speed=200 },
                new Car(){ Name="Mercedes", Speed=345 },
                new Car(){ Name="Audi", Speed=343 },
                new Car(){ Name="Cadilac", Speed=134 },
                new Car(){ Name="Volkvagen", Speed=245 },
            };
 
        BubleSort(garage);
 
        for (int i = 0; i < garage.Length; i++)
        {
            Console.WriteLine(garage[i]);
        }
        Console.ReadKey();
    }
Добавлено через 5 минут
2.
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
class Car 
{
    public string Name { get; set; }
    public int Speed { get; set; }
 
        public static bool operator >(Car lhs, Car rhs)
        {
            return (lhs.Speed > rhs.Speed);
        }
 
        public static bool operator <(Car lhs, Car rhs)
        {
            return (lhs.Speed < rhs.Speed);
        }
 
    public override string ToString()
    {
        return this.Speed.ToString() + "," + this.Name;
    }
}
 
class Program
{
 
    public static void BubleSort(Car[] param)
    {
        Car temp;
 
        for (int i = (param.Length - 1); i >= 0; i--)
        {
            for (int j = 1; j <= i; j++)
            {
                if (param[j - 1]> param[j])
                {
                    temp = param[j - 1];
                    param[j - 1] = param[j];
                    param[j] = temp;
                }
            }
        }
    }
 
 
 
}

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,
1
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 22
17.02.2013, 02:42  [ТС]
Цитата Сообщение от MrCold Посмотреть сообщение
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
class Car :IComparable<Car>
{
    public string Name { get; set; }
    public int Speed { get; set; }
 
 
 
     public int CompareTo(Car other)
    {
        if (this.Speed == other.Speed)
        {
            return this.Name.CompareTo(other.Name);
        }
        return other.Speed.CompareTo(this.Speed);
    }
 
    public override string ToString()
    {
        return this.Speed.ToString() + "," + this.Name;
    }
}
 
class Program
{
 
    public static void BubleSort<T>(T[] param) where T: IComparable<T>
    {
        T temp;
 
        for (int i = (param.Length - 1); i >= 0; i--)
        {
            for (int j = 1; j <= i; j++)
            {
                if (param[j - 1].CompareTo( param[j]) == -1)
                {
                    temp = param[j - 1];
                    param[j - 1] = param[j];
                    param[j] = temp;
                }
            }
        }
    }
 
    static void Main(string[] args)
    {
        Car[] garage = {
                new Car(){ Name="BMW", Speed=200 },
                new Car(){ Name="Mercedes", Speed=345 },
                new Car(){ Name="Audi", Speed=343 },
                new Car(){ Name="Cadilac", Speed=134 },
                new Car(){ Name="Volkvagen", Speed=245 },
            };
 
        BubleSort(garage);
 
        for (int i = 0; i < garage.Length; i++)
        {
            Console.WriteLine(garage[i]);
        }
        Console.ReadKey();
    }
Добавлено через 5 минут
2.
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
class Car 
{
    public string Name { get; set; }
    public int Speed { get; set; }
 
        public static bool operator >(Car lhs, Car rhs)
        {
            return (lhs.Speed > rhs.Speed);
        }
 
        public static bool operator <(Car lhs, Car rhs)
        {
            return (lhs.Speed < rhs.Speed);
        }
 
    public override string ToString()
    {
        return this.Speed.ToString() + "," + this.Name;
    }
}
 
class Program
{
 
    public static void BubleSort(Car[] param)
    {
        Car temp;
 
        for (int i = (param.Length - 1); i >= 0; i--)
        {
            for (int j = 1; j <= i; j++)
            {
                if (param[j - 1]> param[j])
                {
                    temp = param[j - 1];
                    param[j - 1] = param[j];
                    param[j] = temp;
                }
            }
        }
    }
 
 
 
}

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,
если не сложно можешь объяснить как это работает,

Добавлено через 15 минут
Цитата Сообщение от rehvi Посмотреть сообщение
если не сложно можешь объяснить как это работает,
Первый пример
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
17.02.2013, 12:36
Цитата Сообщение от rehvi Посмотреть сообщение
Первый пример
В классе Car реализуем интерфейс IComparable
и единственный метод этого интерфейса int CompareTo( object obj )
в котором :
Если текущий объект и параметр равны метод вернет 0.
Если текущий объект меньше параметра - отрицательное число
Если текущий объект больше параметра - метод вернет положительное число

Здесь сравниваем по двум полям ( я ведь не знал что вам конкретно нужно )
if (this.Speed == other.Speed) // Если скорости равны
{
return this.Name.CompareTo(other.Name); // тогда сравниваем Названия в лексикографическом (алфавитном) порядке.
}
return other.Speed.CompareTo(this.Speed);// скорости не равны значит возвращаем результат сравнения скоростей

Параметром функции BubleSort может быть только массив типа у которого реализован интерфейс IComparable
C#
1
public static void BubleSort<T>(T[] param) where T: IComparable<T>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2013, 12:36
Помогаю со студенческими работами здесь

Первый массив отсортировать методом выбора, второй методом пузырька
Задание. Составить на одном из алгоритмических языков программу, запускается и выдает на экран меню из двух пунктов (табуляция, выход). ...

Отсортировать массив по возрастанию двумя способами – методом «пузырька» и методом «быстрой сортировки» .
Доброго времени суток)Помогите пожалуйста написать вроде поняла быструю сортировку, а как написать что не получается....не знаю как.... ...

Отсортировать массив методом минимального элемента и методом пузырька
Друзья помогите! Очень мало времени на поиски подобного на сайте... А (100) -Случайные числа. Отсортировать массив методом минимального...

Отсортировать массив методом пузырька
Здравствуйте, помогите пожалуйста разобраться в сортировке пузырьком (вроде теоретически она должна работать правильно, но не работает) ...

Отсортировать массив методом пузырька
Всем Доброго времени суток, нужно написать програму в С(Си), которая методом обмена &quot;пузырьки&quot; упорядочивает по убыванию...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru