clc;
clear;
array = [69,58,90,37,92,6,28,54];
% 获取输入数组的长度
arr = array;
n = length(arr);
%画图
figure(1)
subplot(2,1,1)
b = bar((1:1:n),arr); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
for i = 1:length(arr)
text{i} = num2str(arr(i));
end
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
hold off;
pause(0.5);
%% 生成git动态图
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
imwrite(I,map,'直接插入排序动图.gif','gif', 'Loopcount',inf,'DelayTime',1);
%imwrite(I,map,'直接插入排序动图.gif','gif','WriteMode','append','DelayTime',1);
%% 从第二个元素开始遍历数组
for i = 2:n
key = arr(i); % 当前待插入的元素
j = i - 1;
arr_plot = arr;
for k = 1:length(arr_plot)
text{k} = num2str(arr_plot(k));
end
% 画图
subplot(2,1,1)
arr_plot(i) = 0;
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
hold off;
subplot(2,1,2)
arr_plot = zeros(1,length(arr));
arr_plot(i) = arr(i);
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
ylim([0 100])
set(b,'FaceColor','r');
hold off;
pause(0.5);
%% 生成git动态图
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
imwrite(I,map,'直接插入排序动图.gif','gif','WriteMode','append','DelayTime',1);
% 将比key大的元素向后移动
while (j >= 1) && (arr(j) > key)
arr(j+1) = arr(j);
% 画图
subplot(2,1,1)
arr_plot = arr;
arr_plot(j) = 0;
for k = 1:length(arr_plot)
text{k} = num2str(arr_plot(k));
end
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
hold off;
subplot(2,1,2)
arr_plot = zeros(1,length(arr));
arr_plot(j) = array(i);
for k = 1:length(arr_plot)
text{k} = num2str(arr_plot(k));
end
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
set(b,'FaceColor','r');
ylim([0 100])
hold off;
pause(0.5);
%% 生成git动态图
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
imwrite(I,map,'直接插入排序动图.gif','gif','WriteMode','append','DelayTime',1);
j = j - 1;
end
% 插入key到正确的位置
arr(j+1) = key;
% 画图
subplot(2,1,1)
arr_plot = zeros(1,length(arr));
arr_plot(j + 1) = arr(j + 1);
for k = 1:length(arr)
text{k} = num2str(arr(k));
end
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
set(b,'FaceColor','y');
hold on;
arr_plot = arr;
arr_plot(j+1) = 0;
for k = 1:length(arr)
text{k} = num2str(arr(k));
end
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
hold off;
subplot(2,1,2)
arr_plot = zeros(1,length(arr));
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
set(b,'FaceColor','r');
ylim([0 100])
hold off;
pause(0.5);
%% 生成git动态图
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
imwrite(I,map,'直接插入排序动图.gif','gif','WriteMode','append','DelayTime',1);
end
sorted_array = arr; % 返回已排序的数组
pause(0.5);
% 画图
subplot(2,1,1)
arr_plot = arr;
for k = 1:length(arr)
text{k} = num2str(arr(k));
end
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
hold off;
subplot(2,1,2)
arr_plot = zeros(1,length(arr));
b = bar((1:1:n),arr_plot); % 绘制柱状图函数包括三个参数:柱状图横坐标、柱状图数据、柱状图宽度
set(gca,'XTickLabel',text,'FontSize',12,'FontName','宋体'); %X轴标记设置
set(b,'FaceColor','r');
ylim([0 100])
hold off;
%% 生成git动态图
drawnow;
F=getframe(gcf);
I=frame2im(F);
[I,map]=rgb2ind(I,256);
imwrite(I,map,'直接插入排序动图.gif','gif','WriteMode','append','DelayTime',1);
%% 直接插入排序函数调用
% sortedArr= insertionSort(arr);
% disp("***********直接插入排序*****************************");
% disp("排序前的数组:");
% disp(arr);
% disp("排序后的数组:");
% disp(sortedArr);
function sorted_array = insertionSort(arr)
% 获取输入数组的长度
n = length(arr);
% 从第二个元素开始遍历数组
for i = 2:n
key = arr(i); % 当前待插入的元素
j = i - 1;
% 将比key大的元素向后移动
while (j >= 1) && (arr(j) > key)
arr(j+1) = arr(j);
j = j - 1;
end
% 插入key到正确的位置
arr(j+1) = key;
end
sorted_array = arr; % 返回已排序的数组
end


>_<!
- 粉丝: 362
- 资源: 25
最新资源
- 数据资产目录管理平台建设方案(46页).pptx
- 数字化架构的演进和治理.pptx
- 智能制造与卓越运营业务体系设计(86页).pptx
- 基于S7-200 PLC与组态王技术的港口码头装卸料小车控制系统设计与应用,基于S7-200 PLC与组态王技术的港口码头装卸料小车智能控制系统研究与应用,No.942 基于S7-200 PLC和组态
- 《CNN 将行走模式识别为一种非自愿的识别行为》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《从轮廓步态图像中提取步态能量图像特征,然后使用树模型对这些特征进行分类》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《关于 Gait Recognition 的精彩内容集合步态识别》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于轮廓分析的步态识别进行人类身份识别》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于卷积神经网络的步态识别》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于时间部分的步态识》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- Deepseek写的贪吃蛇小游戏
- 《基于深度学习模型的步态识别系统》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于深度学习的步态识别系统》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- DeepSeek 资源,Deepseek-r1复现科普与资源汇总,Deepseek-r1复现科普与资源汇总,目前复现主要针对于R1蒸馏模型(领域模型或者自有SFT模型)和R1-Zero的复现
- 《来自毫米波雷达数据的基于步态的用户识别》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
- 《基于时间部分的步态识别模型》(毕业设计,源码,教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


