//(c)Terminator
#include <iostream>
#include <cstdlib>
#include <iterator>
using namespace std;
//сортировка матрицы по-указанному столбцу "Выборочной сортировкой"
void mdesc_ssort(int** mat, size_t sel_col, size_t rows, size_t cols){
size_t imax;
for(size_t i = 0; i < rows; ++i){
imax = i;
for(size_t j = i + 1; j < rows; ++j){
if(mat[j][sel_col] > mat[imax][sel_col])
imax = j;
}
if(imax != i){
for(size_t c = 0; c < cols; ++c)
swap(mat[imax][c], mat[i][c]);
}
}
}
int main(void){
const size_t rows = 7;
const size_t cols = 12;
size_t i;
int** mat = new int*[rows];
for(i = 0; i < rows; ++i){
mat[i] = new int[cols];
for(size_t c = 0; c < cols; ++c)
mat[i][c] = rand() % 10;
}
//вывести исходную матрицу
for(i = 0; i < rows; ++i){
copy(mat[i], mat[i] + cols, ostream_iterator<int>(cout, " "));
cout << endl;
}
cout << endl;
//сортировать по первому столбцу матрицы
mdesc_ssort(mat, 0, rows, cols);
//вывести отсортированную матрицу
for(i = 0; i < rows; ++i){
copy(mat[i], mat[i] + cols, ostream_iterator<int>(cout, " "));
cout << endl;
}
cout << endl;
//удаление в конце "работы"
for(i = 0; i < rows; ++i)
delete[] mat[i];
delete[] mat;
cin.get();
return 0;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxpdGVyYXRvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgovL9GB0L7RgNGC0LjRgNC+0LLQutCwINC80LDRgtGA0LjRhtGLINC/0L4t0YPQutCw0LfQsNC90L3QvtC80YMg0YHRgtC+0LvQsdGG0YMgItCS0YvQsdC+0YDQvtGH0L3QvtC5INGB0L7RgNGC0LjRgNC+0LLQutC+0LkiCnZvaWQgbWRlc2Nfc3NvcnQoaW50KiogbWF0LCBzaXplX3Qgc2VsX2NvbCwgc2l6ZV90IHJvd3MsIHNpemVfdCBjb2xzKXsKCXNpemVfdCBpbWF4OwoJZm9yKHNpemVfdCBpID0gMDsgaSA8IHJvd3M7ICsraSl7CgkJaW1heCA9IGk7CgkJZm9yKHNpemVfdCBqID0gaSArIDE7IGogPCByb3dzOyArK2opewoJCQlpZihtYXRbal1bc2VsX2NvbF0gPiBtYXRbaW1heF1bc2VsX2NvbF0pCgkJCQlpbWF4ID0gajsKCQl9CgoJCWlmKGltYXggIT0gaSl7CgkJCWZvcihzaXplX3QgYyA9IDA7IGMgPCBjb2xzOyArK2MpCgkJCQlzd2FwKG1hdFtpbWF4XVtjXSwgbWF0W2ldW2NdKTsKCQl9Cgl9Cn0KCgoKaW50ICBtYWluKHZvaWQpewoJY29uc3Qgc2l6ZV90IHJvd3MgPSA3OwoJY29uc3Qgc2l6ZV90IGNvbHMgPSAxMjsKCXNpemVfdCBpOwoJCglpbnQqKiBtYXQgPSBuZXcgaW50Kltyb3dzXTsKCWZvcihpID0gMDsgaSA8IHJvd3M7ICsraSl7CgkJbWF0W2ldID0gbmV3IGludFtjb2xzXTsKCQlmb3Ioc2l6ZV90IGMgPSAwOyBjIDwgY29sczsgKytjKQoJCQltYXRbaV1bY10gPSByYW5kKCkgJSAxMDsKCX0KCgoJLy/QstGL0LLQtdGB0YLQuCDQuNGB0YXQvtC00L3Rg9GOINC80LDRgtGA0LjRhtGDCglmb3IoaSA9IDA7IGkgPCByb3dzOyArK2kpewoJCWNvcHkobWF0W2ldLCBtYXRbaV0gKyBjb2xzLCBvc3RyZWFtX2l0ZXJhdG9yPGludD4oY291dCwgIiAiKSk7CgkJY291dCA8PCBlbmRsOwoJfQoJY291dCA8PCBlbmRsOwoKCS8v0YHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9C+INC/0LXRgNCy0L7QvNGDINGB0YLQvtC70LHRhtGDINC80LDRgtGA0LjRhtGLIAoJbWRlc2Nfc3NvcnQobWF0LCAwLCByb3dzLCBjb2xzKTsKCgkvL9Cy0YvQstC10YHRgtC4INC+0YLRgdC+0YDRgtC40YDQvtCy0LDQvdC90YPRjiDQvNCw0YLRgNC40YbRgwoJZm9yKGkgPSAwOyBpIDwgcm93czsgKytpKXsKCQljb3B5KG1hdFtpXSwgbWF0W2ldICsgY29scywgb3N0cmVhbV9pdGVyYXRvcjxpbnQ+KGNvdXQsICIgIikpOwoJCWNvdXQgPDwgZW5kbDsKCX0KCWNvdXQgPDwgZW5kbDsKCgkvL9GD0LTQsNC70LXQvdC40LUg0LIg0LrQvtC90YbQtSAi0YDQsNCx0L7RgtGLIgoJZm9yKGkgPSAwOyBpIDwgcm93czsgKytpKQoJCWRlbGV0ZVtdIG1hdFtpXTsKCWRlbGV0ZVtdIG1hdDsKCgljaW4uZ2V0KCk7CglyZXR1cm4gMDsKfQ==