What's wrong with my bubble code?

16 views (last 30 days)
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;?

Accepted Answer

per isakson
per isakson on 21 Dec 2018
Edited: per isakson on 21 Dec 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 Comment
Stephen23
Stephen23 on 30 Oct 2024
"Replace ... by ... "
Or even simpler: get rid of both of them and just make the output v.

Sign in to comment.

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!