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

знаю как сортировать для одномерного динмического, но не знаю как сделать для строки двумерного динамического


Ответы (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;
}
→ Ссылка