# how can i sort a matrix (all rows and columns are sorted) without using any special function like "sort"?

1 visualización (últimos 30 días)
Zaza el 5 de Dic. de 2012
i guess it has to do something with "min" and "max" functions...
for example:
A = [2 3 4 5; 6 9 1 5]; %%%"A" can be of any size %%%
%%%B = sorted A %%%
min(A) = [2 3 1 5]; %%%1st unsorted row of B %%%
max(A) = [6 9 4 5]; %%%2nd unsorted row of B %%%
now i've to sort the rows...
any idea?
##### 2 comentariosMostrar NingunoOcultar Ninguno
John Petersen el 5 de Dic. de 2012
Babak el 5 de Dic. de 2012
Matrix A you are providing only has 1 row. How can B have more than 1 row?

Iniciar sesión para comentar.

### Respuestas (3)

Jan el 6 de Dic. de 2012
This is a perfect question for an internet research:
or
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Babak el 6 de Dic. de 2012
Editada: Babak el 6 de Dic. de 2012
If you don't want to use sort() then you can write your own sorting algorithm. Like this one (untested):
function B = mysortfunc(A)
if size(A,1)*size(A,2)~=length(A)
errordlg('enter a vector');
return
end
if size(A,2)~=1
A=A';
end
rem_A = A;
for j=1:length(A)
[value,index] = min(rem_A);
B(j) = value;
if index>1
A1 = rem_A(1:index-1);
else
A1=[];
end
if index<length(rem_A)
A2 = rem_A(index+1:end);
else
A2 = [];
end
rem_A = [A1 , A2]
end
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
José-Luis el 7 de Dic. de 2012
1000 years? Babbage would be impressed...
Jan el 9 de Dic. de 2012
I'm convinced, that even the scroll of parchment in the Egypt libraries have been sorted with smarter methods 5000 years ago, but I cannot find any resources to prove this.
The optimal sorting machine is still the SFL (spaghetti fork lifter): Cut spaghetti noodles according to the values to be sorted. Lift them up and push them against a wall. The processing time does not depend on the number of elements and even the pre-processing is only O(n).

Iniciar sesión para comentar.

Pritesh Shah el 7 de Dic. de 2012
Simple Solution A = [2 3 4 5; 6 9 1 5]
A =
2 3 4 5
6 9 1 5
>> sort(min(A))
ans =
1 2 3 5
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
John Petersen el 7 de Dic. de 2012
You used 'sort' which he specifically requested not to be used, and he also specified that A could be any size.

Iniciar sesión para comentar.

### Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by