Selection Sort,selectionsort
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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Uniapp은 크로스 플랫폼 개발 프레임워크로, 강력한 크로스 엔드 기능을 통해 개발자는 다양한 애플리케이션을 빠르고 쉽게 개발할 수 있습니다. Uniapp에서는 드래그 앤 드롭 정렬과 드래그 앤 드롭 동작을 구현하는 것도 매우 간단하며, 다양한 컴포넌트와 요소의 드래그 앤 드롭 동작을 지원할 수 있습니다. 이 기사에서는 Uniapp을 사용하여 드래그 앤 드롭 정렬 및 드래그 앤 드롭 작업을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 드래그 앤 드롭 정렬 기능은 많은 응용 프로그램에서 매우 일반적입니다. 예를 들어 목록 드래그 앤 드롭 정렬, 아이콘 드래그 앤 드롭 정렬 등을 구현하는 데 사용할 수 있습니다. 아래에 우리가 나열

C++정렬 함수의 맨 아래 계층은 병합 정렬을 사용하고 복잡도는 O(nlogn)이며 빠른 정렬, 힙 정렬 및 안정 정렬을 포함한 다양한 정렬 알고리즘 선택을 제공합니다.

제목: Array.Sort 함수를 사용하여 C#에서 배열을 정렬하는 예 텍스트: C#에서는 배열이 일반적으로 사용되는 데이터 구조이므로 배열 정렬 작업이 필요한 경우가 많습니다. C#에서는 배열을 편리하게 정렬할 수 있는 Sort 메서드가 있는 Array 클래스를 제공합니다. 이 문서에서는 C#에서 Array.Sort 함수를 사용하여 배열을 정렬하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 먼저 Array.Sort 함수의 기본 사용법을 이해해야 합니다. 배열.그래서

예 이 예에서는 계속하기 전에 먼저 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 클래스의 멤버 함수입니다. 이 함수는 수신

Python 프로그래밍에서는 목록이나 배열을 정렬해야 하는 경우가 많습니다. Python은 sort, sorted, numpy.argsort 등을 포함한 다양한 정렬 방법을 제공합니다. 이 기사에서는 이러한 정렬 방법의 사용법과 주의 사항을 자세히 소개합니다. 1. 정렬 방법 정렬 방법은 Python 목록에 내장된 방법으로 목록을 제자리에서 정렬할 수 있으며(즉, 값을 반환하지만 새 정렬 개체를 생성하지 않음) 추가 가져오기 라이브러리가 필요하지 않습니다. 정렬 방법에는 두 개의 매개변수가 있습니다.

PHP 함수 "sort"를 사용하여 배열을 오름차순으로 정렬합니다. PHP에서는 내장 함수를 사용하여 배열을 쉽게 정렬할 수 있습니다. 그 중 정렬(sort) 함수는 배열을 오름차순으로 정렬할 수 있는 가장 일반적으로 사용되는 함수 중 하나이다. 이 기사에서는 정렬 기능을 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다. 정렬 함수의 구문은 다음과 같습니다: sort(array&$array,int$sort_flags=SORT_REGULAR):boo

정렬 함수는 사용자 정의 정렬을 구현하기 위해 사용자 정의 비교 함수를 사용합니다. 비교 함수 작성: 정렬 규칙을 지정하고 매개변수 유형과 반환 값을 정의합니다. 정렬 함수 호출: 사용자 정의 비교 함수를 세 번째 매개변수로 전달하여 컨테이너의 요소를 정렬합니다. 예: 사용자 정의 규칙(빈 문자열 우선, 길이 우선, 사전순)에 따라 정수와 문자열을 내림차순으로 정렬합니다.
