作者 | zhonglihao |
算法名 | 选择排序 Choose Sort |
分类 | 排序 |
复杂度 | n^2型 |
形式与数据结构 | Matlab 代码 ,一维数组 |
特性 | 原址排序特性 |
具体参考出处 | 《算法导论》 |
备注 |
clear all;
clc;
% 选择排序
len = 1000;
data = rand(1,len);
circle_count = 0;
% 总是把扫描的最小的交换到前面去,比冒泡效率高
for i = 1:1:len-1 % 最后一位已被倒数第二次计算交换
min = data(i);
min_index = i;
for j = i+1:1:len
if(data(j)<min)
min = data(j);
min_index = j;
end
circle_count = circle_count + 1;
end
temp = data(i);
data(i) = min;
data(min_index) = temp;
end
disp(circle_count);
% 时间复杂度 = n*(n-1)/2 (固定)
% ram = n + c