前言
刚写完《排序算法之----直接插入排序》,感觉少了点什么。对,就是直观生动的演示。网上看到别人发布的一些动态图,遂起了自己动手DIY的念头
效果图:
源码
close all;cla;
clear all;clc;
N=120;
plot([1:N],N/2*ones(1,N));
data = ones(1,N);
count = 1;
text('Units','pixels','Position',[190,220],'String','by tiredoy');
text('Units','pixels','Position',[170,200],'String','直接插入排序');
M(count) = getframe;
count = count+1;
for i=1:N
data(i) = floor(N*rand(1,1));
end
cla;
plot([1:N],data,'*');
M(count) = getframe;
count = count+1;
key = 0;
for i=2:N
if data(i)
key = data(i);
j = i-1;
while (j>=1 && key
data(j+1) = data(j);
j = j-1;
%cla;
%移动过程中的效果
end
data(j+1) = key;
cla;
plot([1:N],data,'k.');
M(count) = getframe;
count = count+1;
end
end
cla;
plot([1:N],data,'.');
M(count) = getframe;
movie(M);
相关链接