Сортировка Матрицы

FCDK

New Member
07.09.2014
1
0
#1
Такое вот задание. Надо отсортировать матрицу: снизу - вверх - направо, от начала главной диагонали

Я вот начал делать:
C++:
int [][] matr={{9,3,4,4},
{6,0,6,6},
{1,8,4,9},
{6,3,7,8}};

int q=0,nRow=matr.length-1,nCol=matr.length-1;
int ar[] = new int [matr.length*matr.length];

//запись матрицы в массив
for(int i=0; i<matr.length; i++)
for(int j=0; j<matr[i].length; j++){
ar[q]=matr[i][j];
q++;
}

//сортировка массива
for (int i=0;i<ar.length-1;i++)
{
for(int j=i+1;j<ar.length;j++)
{
if(ar[j]<ar[i])
{
int x=ar[i];
ar[i]=ar[j];
ar[j]=x;
}
}
}

//сортировка матрицы
matr[0][0]=ar[0];
int a=1;
int j=1;
for(int k=1;k<nRow;k++,a++)
{
for(int i=0;i<a;i++)
{
matr[k][i]=ar[j];
j++;
}
for(int p=k;p>=0;p--)
{
matr[p][a]=ar[j];
j++;
}
}
return matr;
Функции записи матрицы в массив и сортировка массива работают правильно.

А вот сортировка матрицы работает наполовину. Половину сортирует, а половину нет.

Где тут ошибки?