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

Сортировка двумерного массива методом пузырька

21.06.2020, 13:08. Показов 8520. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив в textbox1

1 3 5 8 7 3 9 8
6 3 4 9 6 9 6 4

где 1-я строка- это время измерения, 2-я строка- значение, которое зафиксировал датчик.
Как отсортировать этот двумерный массив по убыванию времени методом пузырька, при одинаковом времени измерения, оставлять минимальное значение, и вывести результат на textbox2?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2020, 13:08
Ответы с готовыми решениями:

Сортировка двумерного массива методом пузырька
Дан двумерный массив в textBox1, нужно отсортировать его в обратном порядке, методом пузырька, и вывести в textbox2 на C# Добавлено...

Сортировка массива методом пузырька
сортировка массива методом пузырька с#

Сортировка массива методом пузырька (усовершенствованным)
Реализовать алгоритм сортировки массива методом пузырька (усовершенствованным) в массиве из 100 элементов. Вывести на экран кол-во...

7
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
21.06.2020, 13:20
Svet tev, проще представить данные в виде двух одномерных массивов и сортирировать второй синхронно с первым. Если к тому же не привязываться к сортировке пузырьком, то можно использовать стндртный метод Array.Sort<TKey,TValue>(TKey[], TValue[]).

Добавлено через 2 минуты
Если нужен именно двухмерный маассив, то задача элемтарно решается т.к. сортировать нужно только первую строку, а элементы во второй переставляются синхронно с первой.
0
0 / 0 / 0
Регистрация: 10.06.2020
Сообщений: 10
21.06.2020, 16:03  [ТС]
OwenGlendower, Сортировка пузырьком нужна
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
21.06.2020, 16:07
Svet tev, ок. Делай. Для начала для одномерного массива. Затем это несложно будет переделать для одной строки двумерного массива.
0
0 / 0 / 0
Регистрация: 10.06.2020
Сообщений: 10
29.06.2020, 18:09  [ТС]
Помогите написать такую же сортировку, но методом пузырька.

Этот метод (выбора) сортирует двумерный массив из двух строк(первая- это время показания датчика, вторая- само показание датчика) по убыванию времени.

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
void Sort()
        {
 
            for (int i = 0; i <mas3.Length/2-1; i++)
            {
                int max = mas3[0, i];
                int k = i;
                for (int j =i+1; j <  mas3.Length / 2 ; j++)
                {
                  
                    if (mas3[0, j] > max)
                    {
                        max = mas3[0, j];
                        k = j;
                    
                        int buf0 = mas3[0, k];
                        int buf1 = mas3[1, k];
 
 
                        mas3[0, k] = mas3[0, i];
                        mas3[1, k] = mas3[1, i];
 
                        mas3[0, i] = buf0;
                        mas3[1, i] = buf1;
                    }
                }
               
            }
            
        }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
29.06.2020, 18:34
Svet tev, еще раз повторю свой совет - напиши сначала сортировку пузырьком для одномерного массива. Ты в состоянии это сделать?
0
0 / 0 / 0
Регистрация: 10.06.2020
Сообщений: 10
29.06.2020, 18:49  [ТС]
OwenGlendower, а вот для двумерного- нет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
            int temp;
            for (int i = 0; i < mas.Length; i++)
            {
                for (int j = i + 1; j < mas.Length; j++)
                {
                    if (mas[i] < mas[j])
                    {
                        temp = mas[i];
                        mas[i] = mas[j];
                        mas[j] = temp;
                    }                   
                }            
            }
            return mas;
        }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
29.06.2020, 19:55
Svet tev, хорошо. Теперь следующий (предпоследний) шаг. Тебе на самом деле нужно отсортировать не двухмерный массив, а одну его строку. Строка двухмерного массива это одномерный массив. Значит в код нужно внести немного изменений
1) два условия < mas.Length заменяем на < mas.GetLength(1) т.к. GetLength(1) вернет количество колонок в двухмерном массиве = количество элементов в одной строке

2) т.к. выполняется сортировка первой строки, то заменяем [i] на [0,i]. Тоже самое для о разумеется.

3) И заодно переносим объявление temp внутрь if

Внеси эти изменения, убедись что первая строка в самом деле сортируется и выложи код сюда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2020, 19:55
Помогаю со студенческими работами здесь

Генерация массива с помощью ДСЧ и его сортировка методом пузырька
описать функцию формирования элементов одномерного массива с помощью генератора случайных чисел и сортировки массива методом пузырька.

Сортировка строк двумерного массива по возрастанию первого элемента методом выбора
Добрый день! Подскажите пожалуйста с сортировкой строк двумерного массива по возрастанию первого элемента методом выбора. Еще...

Сортировка методом пузырька
Всем привет. Мне надо отсортировать массив. Не получается. В чем моя ошибка? Почему не сортирует??? Помогите пожалуйста. ...

Метод для сортировки массива, методом пузырька - индекс находился вне границ массива
Доброго времени суток. Я изучаю С# недавно. Прочел похожие темы на форму, но так и не понял, как исправить эту ошибку.. Вот написал...

Записать алгоритм сортировки по возрастанию одномерного массива методом «пузырька»
нужна помощь: Записать алгоритм сортировки по возрастанию одномерного массива методом «пузырька». заранее спасибо...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru