сортировка строки, определенной пользователем, методом пузырька в возрастающем порядке для двумерного динамического массива
знаю как сортировать для одномерного динмического, но не знаю как сделать для строки двумерного динамического
Ответы (1 шт):
Автор решения: AR Hovsepyan
→ Ссылка
Напишем для массива целых, вы же можете то же самое написать для любого типа или для всех типов(шаблон):
void bubble_sort(int** array, const int row, const int column)
{
for (int i = 0; i < row; ++i)
for (int j = 0; j < column; ++j)
for (int n = row - 1; n >= i; --n) {
int t = (n == i) ? j + 1 : 0;
for (int m = column - 1; m >= t; --m)
if (array[i][j] > array[n][m])
{
//обмен значений
std::swap(array[i][j], array[n][m]);
}
}
};
Вот пример:
int main() {
int** p = new int* [5];
for (int i = 0; i < 5; ++i) {
p[i] = new int[6];
for (int j = 0; j < 6; ++j)
p[i][j] = rand() % 100;
}
bubble_sort(p, 5, 6);
for (int i = 0; i < 5; ++i)
for (int j = 0; j < 6; ++j)
cout << p[i][j] << ' ';
for (int i = 0; i < 5; ++i)
delete[]p[i];
delete[]p;
return 0;
}