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

排序算法之简单选择排序

作者头像
巴山学长
发布2019-09-19 16:49:21
5960
发布2019-09-19 16:49:21
举报
文章被收录于专栏:巴山学长巴山学长

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

今天给大家的介绍的排序算法为:简单选择排序算法,它是排序算法中最基本的算法,下面就一起来看看该算的实现原理吧。

简单选择排序算法实现过程(以升序排列为例):

对于长度为N的无序数组A,设置排序位置标记loc,假设以A(1)为作为起始标记位置,即loc = 1,将A(1)与A(2)作比较,如果A(loc)>A(2),则loc=2,否则loc保持不变,然后将A(loc)与3至n的元素进行比较,找最小的元素,将最小的元素与A(1)进行交换,即完成一次遍历;按照以上方法遍历完所有元素,即可完成无序数组的排序。

matlab代码

主程序:main.m

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

简单选择排序函数:simSelectR.m

代码语言:javascript
复制
function A = simSelectR(A)
% 感谢关注:matlab爱好者
% 简单选择排序算法源代码
% 作者:matlab爱好者

len = length(A);
for w = 1:len
    loc = w;
    % 遍历len-w+1次
    for v = w+1:len
        if(A(loc)>A(v))
            loc = v;
        end
    end
    % 完成位置交换
    tmp = A(w);
    A(w) = A(loc);
    A(loc) = tmp;
end

效果图

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

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

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

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

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