前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排序算法之插入排序

排序算法之插入排序

作者头像
巴山学长
发布2019-09-24 17:58:58
4910
发布2019-09-24 17:58:58
举报
文章被收录于专栏:巴山学长巴山学长

LEAD

感谢关注matlab爱好者公众号!如果公众号文章对您有帮助,别忘了点击分享和“在看”哦!若您对公众号有什么意见或建议,请在公众号中回复或在任意文章底部留言!

排序算法在编程领域中起着举足轻重的作用,在目标检索、机器学习、数值计算、图像处理等领域有着广泛地应用。为了追本溯源,公众号特推出常用经典排序算法系列推文,让小伙伴们深入了解排序算法的实现原理,同时也提升matlab编程能力。

今天给大家的介绍的排序算法为:插入排序算法,它是将无序序列分成两部分,一部分为假设已经排列完成的序列,另一部分为余下序列,将余下序列中的元素取出插入到已排列完成的序列中,依次比较确定插入位置,下面就一起来看看该算的实现原理吧。


插入排序算法实现过程(以升序排列为例):

对于长度为N的无序数组A,假定序列A(1)为排列完成的序列K,将A(2)与A(1)作比较,如果A(2)<A(1),则两者交换,否则保持不变,即完成序列K的元素添加;将A(3)与A(2)比较,如果A(2)<A(3),则保持不变,否则两者交换,继续将A(3)与A(1)比较,如果A(3)>A(1),则两者交换,否则保持不变;以此类推,将余下序列中的元素取出插入到序列K中,从序列K尾部往首部进行比较,直至完成所有元素的插入。


matlab代码

主程序:main.m

代码语言:javascript
复制
format short;
clc;clear;
A = round(rand(1,8),2);
nA = InsertSort(A);
disp(['原始序列:',num2str(A)]);
disp(['插入排序:',num2str(nA)]);

插入排序函数:InsertSort.m

代码语言:javascript
复制
function A = InsertSort(A)
% 感谢关注:matlab爱好者
% 插入排序算法源代码
% 作者:matlab爱好者

len = length(A);
for w = 1:len-1
    % 从余下序列中取出一个元素插入到新序列中
    for v = w+1:-1:2
        if(A(v)<A(v-1))
            % 如果新元素小于所插入位置的元素,则交换
            tmp = A(v-1);
            A(v-1) = A(v);
            A(v) = tmp;
        else
            % 否则保持位置不变
            break;
        end
    end
end

效果图


封面图片:由PublicDomainPictures在Pixabay上发布

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档