What's wrong with my bubble code?

15 vues (au cours des 30 derniers jours)
bobsoney bobsoney
bobsoney bobsoney le 21 Déc 2018
Commenté : Stephen23 le 30 Oct 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;?

Réponse acceptée

per isakson
per isakson le 21 Déc 2018
Modifié(e) : per isakson le 21 Déc 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 commentaire
Stephen23
Stephen23 le 30 Oct 2024
"Replace ... by ... "
Or even simpler: get rid of both of them and just make the output v.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by