C#實(shí)現(xiàn)——十大排序算法之選擇排序
選擇排序法
1.工作原理(算法思路)
給定一個(gè)待排序數(shù)組,找到數(shù)組中最小的那個(gè)元素
如果最小元素不是待排序數(shù)組的第一個(gè)元素,則將其和第一個(gè)元素互換
在剩下的元素中,重復(fù)1、2過(guò)程,直到排序完成。
2.動(dòng)圖演示
3.C#代碼實(shí)現(xiàn)
根據(jù)原理設(shè)計(jì)算法:


輸出結(jié)果

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

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