【发布时间】:2017-06-08 15:46:34
【问题描述】:
这是我用Matlab写的一个简单的排序函数:
function [matrix] = sorting(matrix)
for index = 1:length(matrix)-1
if matrix(index) > matrix(index + 1)
temp = matrix(index + 1);
matrix(index + 1) = matrix(index);
matrix(index) = temp;
end
end
check_sorted(matrix)
end
function [matrix] = check_sorted(matrix)
count = 0;
for index = 1:length(matrix)-1
if matrix(index) < matrix(index + 1)
count = count + 1;
end
end
if count+1 < length(matrix)
sorting(matrix);
end
end
sorting 函数的输入是一维数组,例如[4 3 2 1],我第一次调用它成功返回排序数组[1 2 3 4],但是它开始返回未排序数组?
【问题讨论】:
-
如果发送[2 4 1 3]会怎样?您的排序仅适用于您显示的确切情况,即输入是反向排序的数组。
-
对不起。我没有意识到 check_sorted 是您排序过程的一部分。
标签: arrays matlab function sorting indexing