C#實現(xiàn)——十大排序算法之選擇排序
2020-10-12 10:19 作者:微軟MVP-Eleven | 我要投稿
選擇排序法
1.工作原理(算法思路)
給定一個待排序數(shù)組,找到數(shù)組中最小的那個元素
如果最小元素不是待排序數(shù)組的第一個元素,則將其和第一個元素互換
在剩下的元素中,重復(fù)1、2過程,直到排序完成。
2.動圖演示
3.C#代碼實現(xiàn)
根據(jù)原理設(shè)計算法:


輸出結(jié)果

4.性能分析
1)復(fù)雜度

2)選擇排序法特點
執(zhí)行的比較和交換次數(shù)
比較:N*(N-1)/2
交換:N運行時間與輸入無關(guān)
在每一次的for循環(huán)結(jié)束后并不能為下一次的循環(huán)提供有效信息。這種性質(zhì)在某些時候是一種缺陷。在數(shù)組大小相同時,當(dāng)一個幾乎已經(jīng)有序的數(shù)組使用選擇排序法花費的時間和無序數(shù)組所花費的時間是一致的。數(shù)據(jù)的移動量最少
交換的次數(shù)和數(shù)組的大小呈線性關(guān)系,其他的排序算法對數(shù)據(jù)移動量都是線性對數(shù)級別或平方級別的。
本文轉(zhuǎn)載自博客園:https://www.cnblogs.com/Lyd1563891920/p/13782257.html
標(biāo)簽: