C++ - Сортировка двумерного массива (пузырьковая)

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Спасибо💕 Благодаря вашему видео смогла перестроить код под сортировку двумерного массива по столбцам

СофьяЛис-еэ
Автор

Переписал с учетом синтаксиcа в С#. Выход за границы массива. Похоже никто не умет сортировать 2-х мерные массивы в С#

dimaan
Автор

Спасибо большое!
Классный метод сортировки. Ваш урок мне очень помог.

ЗлатаБаландина-дз
Автор

Не хватает еще одной проверки для случая если последний елемент в строке меньше или равен первому елементу следующей строки. В этом случае нужно переходить на следующую итерацию. Иначе выполнение продолжится и будет сравниваться последний j елемент с j+1 елементом, которого не существует, что даст ошибку.
То есть после блока if в 56 строке нужно сделать еще одну проверку:
if (j+1 == m and ar[i][j] <= ar[i+1][0]) {
continue;
}

yaroslav
Автор

А если нужно отсортировать только строки ит меньшего к большему?

xXx-wsgb
Автор

как отсортировать 1 колонку двухмерного массива? а не все подряд. при этом ряд не меняется

headhuntez
Автор

спасибо ! очень наглядно! Продолжайте!

Nomad_nomad
Автор

компилятор выдает такую ошибку
идентификатор time не определен
писал код на visual studio 2015

ДинмухамедАзимбаев-сд
Автор

Почему у меня выводит только 3 элемента?? отсортированных. И если можно объясни как сделать сортировку по убыванию...

makkenzytalkanbayev
Автор

для новых версий вижла:
cout << endl;
for (int k = 0; k < n; k++)
for (int l = 0; l < m; l++)
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (j + 1 == m && i + 1 == n) continue;
else
if (j + 1 == m && a[i][j] > a[i + 1][0])
swap(a[i][j], a[i + 1][0]);
else
if (j + 1 == m) continue;
else
if (a[i][j]>a[i][j + 1])
swap(a[i][j], a[i][j + 1]);

nickdaelcentral
Автор

ппц длинно, вот дргуой метод 
for(int m=0; m<size; m++)
{
for(int n=0; n<size; n++)
{
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{






}
}
}
}
только это не пузырек !!!!НО!!!! количество циклов одинаково с моим и вашим а кода меньше

bobhutchinson
Автор

Зачем else после continue? Continue и так перейдет к следующей итерации сразу.

KakSerpomPoYaitsam
Автор

Что вы имеете ввиду по словом "компилятор"? В качестве компилятора здесь выступает gcc, если вы про среду разработки (текстовый редактор), то это Geany.

topol
Автор

зачем при сортировки вводится ещё два дополнительных цикла, для k i l ??

МаксимКолдун-уе
Автор

Ссылка в описании редиректит на рекламу -_-'

galinagalina
Автор

Есть смысл столько вложенных циклов делать? Проще нельзя? Мне кажется - можно.

ilyafreelanse
Автор

int size = 4;
int size2 = 5;
bool flag;
for (int k = 0; k < size*size2-1; k++)
{
flag = false;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size2; j++)
{
if (i + 1 == size && j + 1 == size2) {

}
else
{
(j + 1 == size2) {
(st[i][j] > st[i + 1][0]) {
st[i + 1][0]);
= true;




(st[i][j] > st[i][j + 1]) {
st[i][j + 1]);
= true;



}
}
}
if (!flag)break;
}


так правильнее и не будет мусор подтягивать

МаринаБелова-эо
Автор

Почему первый два элемента массива стали 0
после компиляции

relaxingspeedmusic
join shbcf.ru