排序算法之简单选择排序
- 2019 年 10 月 5 日
- 笔记
序算法在编程领域中起着举足轻重的作用,在目标检索、机器学习、数值计算、图像处理等领域有着广泛。为了追本溯源,公众号特推出常用经典排序算法系列推文,让小伙伴们深入了解排序算法的实现原理,同时也提升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
format short; clc;clear; A = round(rand(1,10),2); nA = simSelectR(A); disp(['原始序列:',num2str(A)]); disp(['选择排序:',num2str(nA)]);
简单选择排序函数:simSelectR.m
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
效果图
