1 選擇排序法的定義
選擇排序(Selection sort)是一種簡(jiǎn)單直觀的排序算法。它的工作原理是:第一次從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個(gè)元素,存放在序列的起始位置,然后再?gòu)氖S嗟奈磁判蛟刂袑ふ业阶钚。ù螅┰?,然后放到已排序的序列的末尾。以此類推,直到全部待排序的?shù)據(jù)元素的個(gè)數(shù)為零。選擇排序是不穩(wěn)定的排序方法。(來(lái)自百度百科)
2 選擇排序法詳細(xì)過(guò)程解析
假定有這樣一個(gè)數(shù)組
int[] nums = new int[]{6, 4, 5, 1, 3, 2};
現(xiàn)在需要將他從大到小排列。
選擇排序法代碼如下:

排序詳細(xì)過(guò)程:
[6, 4, 5, 1, 3, 2] 第一次遍歷6和2交換位置
[6, 5, 4, 1, 3, 2] 第二次遍歷5和4交換位置
[6, 5, 4, 1, 3, 2] 第三次遍歷4位置不變
[6, 5, 4, 3, 1, 2] 第四次遍歷3和1交換位置
[6, 5, 4, 3, 2, 1] 第五次遍歷2和1交換位置
3 選擇排序法時(shí)間復(fù)雜度
數(shù)據(jù)比較次數(shù):
C = (N-1)+(N-2)+……+2+1=(((N-1)+1)*(N-1)) / 2=(N^2)/2-N/2
數(shù)據(jù)交換次數(shù):
M = N-1
時(shí)間復(fù)雜度:
C+M=(N^2)/2-N/2+ N-1=O(N^2)
因此,選擇排序的時(shí)間復(fù)雜度為O(N^2)
4 結(jié)語(yǔ)
感謝各位的閱讀,如有問(wèn)題,歡迎大家留言反饋,我會(huì)在第一時(shí)間修正。
-
算法
+關(guān)注
關(guān)注
23文章
4784瀏覽量
98042 -
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145575 -
排序算法
+關(guān)注
關(guān)注
0文章
53瀏覽量
10426
發(fā)布評(píng)論請(qǐng)先 登錄
MAX16050/MAX16051:電壓監(jiān)測(cè)與排序電路的理想選擇
ADM1066:多功能電源監(jiān)控與排序芯片的深度解析
探索LM3880:三軌簡(jiǎn)單電源排序器的卓越性能與應(yīng)用
MAX16050/MAX16051:具備反向排序功能的電壓監(jiān)控與排序電路
里可以添加本文要記錄的大
講解C語(yǔ)言代碼的實(shí)現(xiàn)過(guò)程
C語(yǔ)言插入排序算法和代碼
光纖線芯都是按照什么顏色排序的
C語(yǔ)言的常見(jiàn)算法
選擇加密算法時(shí)需考慮哪些因素?
如何選擇適合的抗干擾算法來(lái)優(yōu)化電能質(zhì)量在線監(jiān)測(cè)裝置的測(cè)量精度?
Camellia算法的實(shí)現(xiàn)(基于開(kāi)源蜂鳥(niǎo)E203協(xié)處理器)
國(guó)密系列算法簡(jiǎn)介及SM4算法原理介紹
HarmonyOS實(shí)戰(zhàn):自定義時(shí)間選擇器
如何選擇適合您的過(guò)程控制器?
詳談選擇排序算法的定義和過(guò)程
評(píng)論