Матрица должная сортироваться так, что сначала идут отрицательные, потом положительные, а потом нули, сохраняя последовательность, но нули у меня почему-то идут первее
for (int index1 = 0; index1 < N * M; ++index1) {
int i = index1 / N;
int j = index1 % N;
if (A[i][j] >= 0) {
for (int index2 = index1 + 1; index2 < N * M; ++index2) {
int k = index2 / N;
int l = index2 % N;
if (A[k][l] < 0) {
swap(A[i][j], A[k][l]);
break;
}
}
}
}
for (int index1 = N * M; index1 >= 0; --index1) {
int i = index1 / N;
int j = index1 % N;
if (i == 5) {
i -= 1;
}
if (A[i][j] != 0) {
for (int index2 = N * M; index2 >= 0; --index2) {
int k = index2 / N;
int l = index2 % N;
if (k == 5) {
k -= 1;
}
if (A[k][l] == 0) {
swap(A[i][j], A[k][l]);
break;
}
}
}
}