Selection Sort,selectionsort_PHP教程
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无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Uniapp是一款跨平台的开发框架,其强大的跨端能力使得开发者可以快速方便地开发出各种应用。在Uniapp中实现拖拽排序和拖拽操作也是非常简单的,并且可以支持多种组件和元素的拖拽操作。本文将介绍如何使用Uniapp实现拖拽排序和拖拽操作,并提供具体的代码示例。拖拽排序功能在很多应用中都非常常见,例如可以用于实现列表的拖拽排序,图标的拖拽排序等。下面我们以列表

C++sort函数底层采用归并排序,其复杂度为O(nlogn),并提供不同的排序算法选择,包括快速排序、堆排序和稳定排序。

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

示例在这个例子中,我们先看看list.sort()的用法,然后再继续。在这里,我们创建了一个列表并使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList.sort(

如何使用C#中的List.Sort函数对列表进行排序在C#编程语言中,我们经常需要对列表进行排序操作。而List类的Sort函数正是为此设计的一个强大工具。本文将介绍如何使用C#中的List.Sort函数对列表进行排序,并提供具体的代码示例,帮助读者更好地理解和应用该函数。List.Sort函数是List类的一个成员函数,用于对列表中的元素进行排序。该函数接

使用PHP函数"sort"对数组按升序进行排序在PHP中,可以很方便地使用内置函数来对数组进行排序。其中,sort函数是最常用的函数之一,可以对数组按照升序进行排序。本文将介绍如何使用sort函数,并给出相应的代码示例。sort函数的语法如下:sort(array&$array,int$sort_flags=SORT_REGULAR):boo

sort函数利用自定义比较函数实现定制排序:编写比较函数:指定排序规则,定义参数类型和返回值。调用sort函数:将自定义比较函数作为第三个参数,对容器中的元素进行排序。示例:按降序对整数排序,按自定义规则对字符串排序(空字符串优先、长度优先、字典序优先)。

在Python编程中,经常需要对列表或数组进行排序操作。Python提供了多种排序方法,包括sort、sorted和numpy.argsort等。本文将详细介绍这些排序方法的使用方法和注意事项。一、sort方法sort方法是Python列表中内置的方法,可以对列表进行原地排序(即有返回值但不产生新的排序对象),不需要额外的导入库。sort方法的参数有两个:k
