"선택정렬 구현"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 2명의 중간 판 11개는 보이지 않습니다)
3번째 줄: 3번째 줄:
[[분류: C]]
[[분류: C]]
{{참고|C 선택정렬 구현}}
{{참고|C 선택정렬 구현}}
<source lang='c'>
<syntaxhighlight lang='c'>
#include <stdio.h>
#include <stdio.h>
void selection_sort(int a[], int size) {
void selection_sort(int a[], int size) {
22번째 줄: 22번째 줄:
// -1 0 1 1 4 9 10 22 22 100  
// -1 0 1 1 4 9 10 22 22 100  
}
}
</source>
</syntaxhighlight>


==C++==
==C++==
[[분류: C++]]
[[분류: C++]]
{{참고|C++ 선택정렬 구현}}
{{참고|C++ 선택정렬 구현}}
<source lang='cpp'>
<syntaxhighlight lang='cpp'>
#include <iostream>
#include <iostream>
void selection_sort(int a[], int size) {
void selection_sort(int a[], int size) {
46번째 줄: 46번째 줄:
// -1 0 1 1 4 9 10 22 22 100  
// -1 0 1 1 4 9 10 22 22 100  
}
}
</source>
</syntaxhighlight>


==C#==
==C#==
[[분류:csharp]]
[[분류:csharp]]
{{참고|C샵 선택정렬 구현}}
{{참고|C샵 선택정렬 구현}}
<source lang='csharp'>
<syntaxhighlight lang='csharp'>
using System;
using System;
class Program {
class Program {
     static void selection_sort(int[] a) {
     static void selectionSort(int[] a) {
         int i, j, minidx, temp, size=a.Length;
         int i, j, minidx, temp, size=a.Length;
         for(i=0; i<size; i++) {
         for(i=0; i<size; i++) {
66번째 줄: 66번째 줄:
     static void Main() {
     static void Main() {
         int[] arr = {9,1,22,4,0,-1,1,22,100,10};
         int[] arr = {9,1,22,4,0,-1,1,22,100,10};
         selection_sort(arr);
         selectionSort(arr);
         foreach(int i in arr) Console.Write(i+" ");
         Console.Write(string.Join(",",arr));
         // -1 0 1 1 4 9 10 22 22 100  
         // -1,0,1,1,4,9,10,22,22,100
     }
     }
}
}
</source>
</syntaxhighlight>


==Java==
==Java==
[[분류: Java]]
[[분류: Java]]
{{참고|Java 선택정렬 구현}}
{{참고|Java 선택정렬 구현}}
<source lang='java'>
<syntaxhighlight lang='java'>
public class MyClass {
public class MyClass {
     static void selection_sort(int a[]) {
     static void selection_sort(int a[]) {
95번째 줄: 95번째 줄:
     }
     }
}
}
</source>
</syntaxhighlight>


==Perl==
==Perl==
[[분류:Perl]]
[[분류:Perl]]
<source lang='perl'>
{{참고|Perl 선택정렬 구현}}
@arr = (9,1,22,4,0,-1,1,22,100,10);
<syntaxhighlight lang='perl'>
$size=@arr;
sub selection_sort {
for $i (0..$size) {
    my $a=shift;
    $minidx=$i;
    $size=@$a;
    for $j ($i+1..$size) {
    for $i (0..$size-1) {
        $minidx=$j if ($arr[$minidx]>$arr[$j]);
        $minidx=$i;
        for $j ($i+1..$size-1) {
            $minidx=$j if (@$a[$minidx]>@$a[$j]);
        }
        (@$a[$minidx],@$a[$i]) = (@$a[$i],@$a[$minidx]);
     }
     }
    ($arr[$minidx], $arr[$i]) = ($arr[$i], $arr[$minidx]);
}
}
print join(',', grep /\S/, @arr);
@arr = (9,1,22,4,0,-1,1,22,100,10);
#-1,0,1,1,4,9,10,22,22,100
selection_sort(\@arr);
</source>
print join(',',@arr);
# -1,0,1,1,4,9,10,22,22,100
</syntaxhighlight>


==PHP==
==PHP==
[[분류: PHP]]
[[분류: PHP]]
{{참고|PHP 선택정렬 구현}}
{{참고|PHP 선택정렬 구현}}
<source lang='php'>
<syntaxhighlight lang='php'>
<?php
<?php
function selection_sort(&$a) {
function selection_sort(&$a) {
130번째 줄: 135번째 줄:
$arr = [9,1,22,4,0,-1,1,22,100,10];
$arr = [9,1,22,4,0,-1,1,22,100,10];
selection_sort( $arr );
selection_sort( $arr );
echo implode(' ', $arr);
echo implode(',',$arr);
# -1 0 1 1 4 9 10 22 22 100
# -1,0,1,1,4,9,10,22,22,100
</source>
</syntaxhighlight>


==Python==
==Python==
[[분류: Python]]
[[분류: Python]]
{{참고|Python 선택정렬 구현}}
{{참고|Python 선택정렬 구현}}
<source lang='python'>
<syntaxhighlight lang='python'>
def selection_sort(a):
def selection_sort(a):
     size = len(a)
     size = len(a)
143번째 줄: 148번째 줄:
         minidx = i
         minidx = i
         for j in range(i+1,size):
         for j in range(i+1,size):
             if(a[minidx]>a[j]): minidx=j
             if(a[minidx]>a[j]):
         a[minidx], a[i] = a[i], a[minidx]
                minidx=j
         a[minidx],a[i] = a[i],a[minidx]
arr = [9,1,22,4,0,-1,1,22,100,10]
arr = [9,1,22,4,0,-1,1,22,100,10]
selection_sort( arr )
selection_sort( arr )
print( arr )
print( arr )
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]
</source>
</syntaxhighlight>


==Ruby==
==Ruby==
[[분류: Ruby]]
[[분류: Ruby]]
{{참고|Ruby 선택정렬 구현}}
{{참고|Ruby 선택정렬 구현}}
<source lang='ruby'>
<syntaxhighlight lang='ruby'>
def selection_sort(a)
def selection_sort(a)
     for i in (0...a.size)
     for i in (0...a.size)
168번째 줄: 174번째 줄:
print arr
print arr
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[선택정렬]]
* [[선택정렬]]
* [[정렬 구현]]
* [[정렬 구현]]
==참고==
* http://www.codecodex.com/wiki/Selection_sort
* https://rosettacode.org/wiki/Sorting_algorithms/Selection_sort

2020년 11월 2일 (월) 02:31 기준 최신판

1 C[ | ]

#include <stdio.h>
void selection_sort(int a[], int size) {
    int i, j, minidx, temp;
    for(i=0; i<size; i++) {
        minidx = i;
        for(j=i+1; j<size; j++) {
            if(a[minidx] > a[j]) minidx = j;
        }
        temp=a[minidx]; a[minidx]=a[i]; a[i]=temp;
    }
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = sizeof(arr)/sizeof(int);
	selection_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// -1 0 1 1 4 9 10 22 22 100 
}

2 C++[ | ]

#include <iostream>
void selection_sort(int a[], int size) {
    int i, j, minidx;
    for(i=0; i<size; i++) {
        minidx = i;
        for(j=i+1; j<size; j++) {
            if(a[minidx] > a[j]) minidx = j;
        }
        std::swap(a[minidx], a[i]);
    }
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = sizeof(arr)/sizeof(int);
	selection_sort(arr, size);
	for(int x: arr) std::cout << x << " ";
	// -1 0 1 1 4 9 10 22 22 100 
}

3 C#[ | ]

using System;
class Program {
    static void selectionSort(int[] a) {
        int i, j, minidx, temp, size=a.Length;
        for(i=0; i<size; i++) {
            minidx=i;
            for(j=i+1; j<size; j++) {
                if( a[minidx]>a[j] ) minidx=j;
            }
            temp=a[minidx]; a[minidx]=a[i]; a[i]=temp;
        }
    }
    static void Main() {
        int[] arr = {9,1,22,4,0,-1,1,22,100,10};
        selectionSort(arr);
        Console.Write(string.Join(",",arr));
        // -1,0,1,1,4,9,10,22,22,100
    }
}

4 Java[ | ]

public class MyClass {
    static void selection_sort(int a[]) {
        int i, j, minidx, temp, size=a.length;
        for(i=0; i<size; i++) {
            minidx = i;
            for(j=i+1; j<size; j++) {
                if (a[minidx] > a[j]) minidx = j;
            }
            temp=a[minidx]; a[minidx]=a[i]; a[i]=temp;
        }
    }
    public static void main(String[] args) {
        int[] arr = {9,1,22,4,0,-1,1,22,100,10};
        selection_sort(arr);
        for(int x:arr) System.out.format( "%d ", x );
        // -1 0 1 1 4 9 10 22 22 100 
    }
}

5 Perl[ | ]

sub selection_sort {
    my $a=shift;
    $size=@$a;
    for $i (0..$size-1) {
        $minidx=$i;
        for $j ($i+1..$size-1) {
            $minidx=$j if (@$a[$minidx]>@$a[$j]);
        }
        (@$a[$minidx],@$a[$i]) = (@$a[$i],@$a[$minidx]);
    }
}
@arr = (9,1,22,4,0,-1,1,22,100,10);
selection_sort(\@arr);
print join(',',@arr);
# -1,0,1,1,4,9,10,22,22,100

6 PHP[ | ]

<?php
function selection_sort(&$a) {
    $size = count($a);
    for($i=0; $i<$size; $i++) {
        $minidx = $i;
        for($j=$i+1; $j<$size; $j++) {
            if($a[$minidx]>$a[$j]) $minidx = $j;
        }
        $temp=$a[$minidx]; $a[$minidx]=$a[$i]; $a[$i]=$temp;
    }
}
$arr = [9,1,22,4,0,-1,1,22,100,10];
selection_sort( $arr );
echo implode(',',$arr);
# -1,0,1,1,4,9,10,22,22,100

7 Python[ | ]

def selection_sort(a):
    size = len(a)
    for i in range(size):
        minidx = i
        for j in range(i+1,size):
            if(a[minidx]>a[j]):
                minidx=j
        a[minidx],a[i] = a[i],a[minidx]
arr = [9,1,22,4,0,-1,1,22,100,10]
selection_sort( arr )
print( arr )
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]

8 Ruby[ | ]

def selection_sort(a)
    for i in (0...a.size)
        minidx=i
        for j in (i+1...a.size)
            minidx=j if a[minidx]>a[j]
        end
        a[minidx],a[i] = a[i],a[minidx]
    end
end
arr = [9,1,22,4,0,-1,1,22,100,10]
selection_sort(arr)
print arr
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]

9 같이 보기[ | ]

10 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}