Selection Sort,selectionsort
Red is current min. Yellow is sorted list. Blue is current item. (picture from wikipedia, a little too fast)
10 numbers. Sort as ascend.
1. Find the min of the 10 and switch it with a[0], requires 9 times of compare
2. Find the min of the rest 9 and switch it with a[1], requires 8 times of compare
. . .
1, 10, 9
2, 9, 8
3, 8, 7
4, 7, 6
5, 6, 5
6, 5, 4
7, 4, 3
8, 3, 2
9, 2, 1
In conclusion: For 10 numbers, we need 9 times of finding the min, each has one-short amount of numbers to compare.
Implementation in PHP:
<span> 1</span> <?<span>php </span><span> 2</span> <span>/*</span><span> selection sort: </span><span> 3</span> <span> 1. operate directly on the input array (&), not on a copy </span><span> 4</span> <span> 2. sort as ascend </span><span> 5</span> <span> 6</span> <span> a is array </span><span> 7</span> <span> m is length of a </span><span> 8</span> <span> n is times of outer loop, which is finding min of the rest </span><span> 9</span> <span> i/j is for-loop counter </span><span>10</span> <span> w is for value swap </span><span>11</span> <span> min is min </span><span>12</span> <span> sub is index of array </span><span>13</span> <span>*/</span> <span>14</span> <span>function</span> sortSelection(&<span>$a</span><span>){ </span><span>15</span> <span>$m</span> = <span>count</span>(<span>$a</span>); <span>16</span> <span>$n</span> = <span>$m</span> - 1; <span>17</span> <span>$min</span><span>; </span><span>18</span> <span>$sub</span>; <span>19</span> <span>for</span>(<span>$i</span>=0; <span>$i</span><<span>$n</span>; <span>$i</span>++<span>){ </span><span>20</span> <span>$min</span> = <span>$a</span>[<span>$i</span>]; <span>21</span> <span>for</span>(<span>$j</span>=<span>$i</span>; <span>$j</span><<span>$m</span>; <span>$j</span>++){ <span>22</span> <span>if</span>(<span>$a</span>[<span>$j</span>] < <span>$min</span><span>){ </span><span>23</span> <span>$min</span> = <span>$a</span>[<span>$j</span><span>]; </span><span>24</span> <span>$sub</span> = <span>$j</span><span>; </span><span>25</span> <span> } </span><span>26</span> <span>else</span><span>{ </span><span>27</span> <span>$sub</span> = <span>$i</span><span>; </span><span>28</span> <span> } </span><span>29</span> <span> } </span><span>30</span> <span>$a</span>[<span>$sub</span>] = <span>$a</span>[<span>$i</span><span>]; </span><span>31</span> <span>$a</span>[<span>$i</span>] = <span>$min</span><span>; </span><span>32</span> <span>//</span><span> echo implode(', ', $a).'<br />';</span> <span>33</span> <span> } </span><span>34</span> <span>} </span><span>35</span> <span>36</span> <span>$arr</span> = <span>array</span>(9, 5, 2, 7, 3<span>); </span><span>37</span> sortSelection(<span>$arr</span><span>); </span><span>38</span> <span>echo</span> <span>implode</span>(', ', <span>$arr</span><span>); </span><span>39</span> <span>40</span> <span>//</span><span> 2, 3, 5, 7, 9</span> <span>41</span> ?>
void selection_sort(int array[],int k)
{
int i,j,m,t;
for(i=0;i
for(j=i+1;jif(array[j]
if(m!=i){
t=array[i];
array[i]=array[m];
array[m]=t;
}
}
}
void main(){
int a[10];
for (int i=0;iscanf("%d",&a[i]);
selection_sort(a,10);
printf("排序结果为:");
for (i=0;iprintf("%d\n",a[i]);
}
void selection_sort(int array[],int k)
{
int i,j,m,t;
for(i=0;i
for(j=i+1;jif(array[j]
if(m!=i){
t=array[i];
array[i]=array[m];
array[m]=t;
}
}
}
void main(){
int a[10];
for (int i=0;iscanf("%d",&a[i]);
selection_sort(a,10);
printf("排序结果为:");
for (i=0;iprintf("%d\n",a[i]);
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境