unknown code- can anyone help me with what this code does?
    2 ビュー (過去 30 日間)
  
       古いコメントを表示
    
    Josh Williams
 2020 年 3 月 15 日
  
    
    
    
    
    コメント済み: Sriram Tadavarty
    
 2020 年 3 月 15 日
            clear
r=rand(15,1)
for i=1:15
  for ii=1:15
    if (r(i)>r(ii))
     temp=r(i);
     r(i)=r(ii);
     r(ii)=temp;
        end
    end
end
disp(r)
採用された回答
  Sriram Tadavarty
    
 2020 年 3 月 15 日
        
      編集済み: Sriram Tadavarty
    
 2020 年 3 月 15 日
  
      Hi Josh,
This code performs sorting in descending order.
r=rand(15,1) % This statement initializes r with 15 random numbers
for i=1:15 % Loop from 1 to number of elements in r
  for ii=1:15 % Loop from 1 to number of elements in r
    if (r(i)>r(ii)) % Compares the element with all the elements in the array and performs the swap operation
     temp=r(i); % Store the larger value in a temporary variable
     r(i)=r(ii); % Replace the smaller value in the array with larger value
     r(ii)=temp; % Replace the smaller value with the temporary variable
        end
    end
end
disp(r) % Display the descending order sequence
% For example, consider an array to be of length 4 with values [5 4 6 3]
% In the first loop i = 1
% When i is equal to 1, ii moves from 1 to 4
% Check 1st element (5) with itself (5), it is not larger, so no swap
% Check 1st element (5) with second element (4), so swap, temp = 5, r(1) = 4, r(2) = 5. So, r is now [4 5 6 3]
% Check 1st element (4) with thrid element (6), it is not larger, so no swap
% Check 1st element (4) with the fourth element (3), it is larger, so swap, temp = 4, r(1) = 3, r(4) = 4. So, r is now [3 5 6 4]
% Now i = 2 , r is till now [3 5 6 4]
% When i is equal to 2, ii moves from 1 to 4
% Check 2nd element (5) with first element (3), it is larger, so swap, temp = 5, r(2) = 3, r(1) = 5, So, r is now [5 3 6 4]
% Check 2nd element (3) with second element (3), it is not larger, so no swap
% Check 2nd element (3) with third element (6),  it is not larger, so no swap
% Check 2nd element (3) with fourth element (4),  it is not larger, so no swap
% Now i = 3, r is now [5 3 6 4]
% When i is equal to 3, ii moves from 1 to 4
% Check 3rd element (6) with first element (5), it is larger, so swap, temp = 6, r(3) = 5, r(1) = 6, So, r is now [6 3 5 4]
% Check 3rd element (5) with second element (3), it is larger, so swap, temp = 5, r(3) = 3, r(2) = 5, So, r is now [6 5 3 4]
% Check 3rd element (3) with third element (3), it is not larger, so no swap
% Check 3rd element (3) with fourth element (4), it is not larger, so no swap
% Now i = 4, r is [6 5 3 4]
% When i is equal to 4, ii moves from 1 to 4
% Check 4th element (4) with first element (6), it is not larger, so no swap
% Check 4th element (4) with second element (5), it is not larger, so no swap
% Check 4th element (4) with third element (3), it is larger, so swap, temp = 4, r(4) = 3, r(3) =4, So, r is [6 5 4 3]
% Check 4th element (3) with fourth element (3), it is not larger, so no swap
% All the loops ran and r is now [6 5 4 3]
% This is displayed with disp function
% The same can be applied for length of 15 elements in the code
Hope this explains what the code does.
Regards,
Sriram
2 件のコメント
その他の回答 (1 件)
  John D'Errico
      
      
 2020 年 3 月 15 日
        
      編集済み: John D'Errico
      
      
 2020 年 3 月 15 日
  
      If I had to guess, it looks like a poorly written attempt at a sorting code, to sort a vector of numbers in decreasing order. My guess is it was written by a student, as the swapping scheme seems a bit kludgy, and the overall code looks as if written by a novice. The clear in front is also the common act of a student.
Why do I say poorly written?
- Because it is fully uncommented. Uncommented code is of no value at all. (see below)
- Because it is an inefficient way to perform a sort, making direct comparisons between all elements of the array with all other elements, and even worse, even with themselves too.
The problem is, code written just as code, with no comments as to what it does, and taken completely out of context is typically just a random string of characters. It has as much value as the output from a thousand monkees, banging away at typewriters.
参考
カテゴリ
				Help Center および File Exchange で Shifting and Sorting Matrices についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



