How do I sort an array in descending order without using the sort function?

2 visualizzazioni (ultimi 30 giorni)
A = [2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19]

Risposta accettata

Thorsten
Thorsten il 5 Nov 2015
You can use bubble sort:
swapped = 1;
while swapped
swapped = 0;
for i=1:numel(A)-1
if A(i+1) > A(i)
temp = A(i); A(i) = A(i+1); A(i+1) = temp; swapped = 1;
end
end
end

Più risposte (2)

Walter Roberson
Walter Roberson il 5 Nov 2015
flipud(unique(A(:)))

Stephen23
Stephen23 il 5 Nov 2015
Modificato: Stephen23 il 5 Nov 2015
Here are a few ways to sort an array of unique values without using sort:
sortrows(A(:),-1)
A(end:-1:1) = unique(A);
fliplr(union(A,A(1)))
fliplr(setdiff(A,NaN))

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by