What's wrong with my bubble code?

13 visualizaciones (últimos 30 días)
bobsoney bobsoney
bobsoney bobsoney el 21 de Dic. de 2018
Comentada: Stephen23 el 30 de Oct. de 2024
clc
function y = sort( v )
n = length( v );
sorted = 0;
k = 0;
while ~sorted
sorted = 1;
k = k + 1;
for j = 1:n-k
if v(j) > v(j + 1)
t = v(j);
v(j) = v(j + 1);
v(j + 1) = t;
sorted = 0;
end
end
end
y = x;
This code ain't doing [anything] guys. What's wrong? Should I put v = input( 'vector? ' ) before the function or something? What's the point of the y = x;?

Respuesta aceptada

per isakson
per isakson el 21 de Dic. de 2018
Editada: per isakson el 21 de Dic. de 2018
The red markers in the right column indicates that something is seriously wrong
Right click function
(There is already a function named sort in Matlab. Pick another name. )
Remove the first line (and add end as the last line).
Try
function y = my_sort( v )
n = length( v );
sorted = 0;
k = 0;
while ~sorted
sorted = 1;
k = k + 1;
for j = 1:n-k
if v(j) > v(j + 1)
t = v(j);
v(j) = v(j + 1);
v(j + 1) = t;
sorted = 0;
end
end
end
y = x;
end
I get
Cannot find an exact (case-sensitive) match for 'x
The closest match is: X in H:\m\cssm\X.m
Error in my_sort (line 19)
y = x;
Replace
y = x;
by
y = v;
and try again
>> my_sort( randi(12,1,6) )
ans =
2 4 7 12 12 12
>>
  1 comentario
Stephen23
Stephen23 el 30 de Oct. de 2024
"Replace ... by ... "
Or even simpler: get rid of both of them and just make the output v.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by