Bubble sort not working like I want it
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
x = rand([12,1])
for j = 1:numel(x)-1;
if x(j) > x(j+1);
temp1 = x(j);
x(j) = x(j+1);
x(j+1) = temp1;
end
end
The script seems to recognize when an element is larger than the next, but it doesn't flip the elements. I don't understand why :S
0 Kommentare
Antworten (3)
Benjamin
am 11 Feb. 2013
1 Kommentar
Azzi Abdelmalek
am 11 Feb. 2013
Bearbeitet: Azzi Abdelmalek
am 11 Feb. 2013
You are just puting the greatest value at the end of your array. You should repeat the operation from 1 to n-1 then from 1 to n-2 and so on
Honglei Chen
am 11 Feb. 2013
This only gets the largest element to the bottom. You need another level of iteration to sort the rest of them.
0 Kommentare
Azzi Abdelmalek
am 11 Feb. 2013
Bearbeitet: Azzi Abdelmalek
am 11 Feb. 2013
x=[8 10 2 4 6]
x(1)<x(2) % no action x(1)=8 , x(2)=10
x(2)>x(3) % x(2)=2; x(3)=10
at this step you have : 8,2,10, your array can't be sorted!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!