
MATLAB怎么进行插入排序,谢谢😔要交作业可是不会写,求助
展开全部
% 插入排序:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,
% 但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--
% 插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,
% 从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,
% 时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:
% 第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间
% 才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。
% 在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
A = randi(20,1,10) % 生成一个无序序列
R = A(1); % 有序序列
for k = 2:length(A)
f = A(k);
h = 1;
while ~isempty(f) && h<=length(R)
if f<R(h) % 按升序排序
R = [R(1:h-1) f R(h:end)];
f = [];
end
h = h+1;
end
if ~isempty(f)
R = [R f];
end
end
R
A =
5 8 17 1 1 4 13 15 13 10
R =
1 1 4 5 8 10 13 13 15 17
追问
谢谢你,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询