欢迎光临散文网 会员登陆 & 注册

C#实现——十大排序算法之选择排序

2020-10-12 10:23 作者:朝夕教育  | 我要投稿


选择排序法

1.工作原理(算法思路)

  1. 给定一个待排序数组,找到数组中最小的那个元素

  2. 如果最小元素不是待排序数组的第一个元素,则将其和第一个元素互换

  3. 在剩下的元素中,重复1、2过程,直到排序完成。

2.动图演示


3.C#代码实现

根据原理设计算法:

输出结果



4.性能分析

1)复杂度


2)选择排序法特点

  • 执行的比较和交换次数
    比较:N*(N-1)/2
    交换:N

  • 运行时间与输入无关
    在每一次的for循环结束后并不能为下一次的循环提供有效信息。这种性质在某些时候是一种缺陷。在数组大小相同时,当一个几乎已经有序的数组使用选择排序法花费的时间和无序数组所花费的时间是一致的。

  • 数据的移动量最少
    交换的次数和数组的大小呈线性关系,其他的排序算法对数据移动量都是线性对数级别或平方级别的。

本文转载自博客园:https://www.cnblogs.com/Lyd1563891920/p/13782257.html


C#实现——十大排序算法之选择排序的评论 (共 条)

分享到微博请遵守国家法律