[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ(Selection Sort)์ด๋ž€?

2022. 12. 18. 00:22ยท๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
728x90

์„ ํƒ์ •๋ ฌ

  • ์ •๋ ฌ๋œ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ์™€ ์ •๋ ฌ์•ˆ๋œ ์˜ค๋ฅธ์ชฝ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆ„์–ด ์ •๋ ฌ
  • ์ดˆ๊ธฐ์—๋Š” ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ๋Š” ๋น„์–ด์žˆ๊ณ  ์ •๋ ฌํ•  ์ˆซ์ž๋“ค์€ ๋ชจ๋‘ ์˜ค๋ฅธ์ชฝ ๋ฆฌ์ŠคํŠธ์— ์กด์žฌํ•œ๋‹ค.
  • In-place ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜ (์ž…๋ ฅ๋ฐฐ์—ด ์ด์™ธ์˜ ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•)
  • ์›์†Œ๋ฅผ ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ์žˆ๊ณ  ์–ด๋–ค ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ "์„ ํƒ"ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์˜ค๋ฅธ์ชฝ๋ฆฌ์ŠคํŠธ์—์„œ ์ตœ์†Œ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ •

  1. ์„ ํƒ ์ •๋ ฌ์€ ์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ์ฒซ ๋ฒˆ์งธ์— ๋†“๊ณ , ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€์™€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ๋‘ ๋ฒˆ์งธ ์œ„์น˜์— ๋†“๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  2. 1ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์˜ ์ž๋ฃŒ๊ฐ€ ๋งจ ์•ž์— ์˜ค๊ฒŒ ๋˜๋ฏ€๋กœ ๊ทธ ๋‹ค์Œ ํšŒ์ „์—์„œ๋Š” ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ๊ฐ€์ง€๊ณ  ๋น„๊ตํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 3ํšŒ์ „์—์„œ๋Š” ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ์ •๋ ฌํ•œ๋‹ค.

#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)

int main() {
    int arr[5] = {9,6,7,3,5};
    int i,j, min, temp;
    for(i=0; i< 5;i++){
        min = i;
        for(j=i+1; j<5; j++)
            if(arr[j] < arr[min])
                min = j;
        temp = arr[i];
        arr[i] = arr[min];
        arr[min] = temp;
    }

    for(int i=0; i< 5;i++){
        printf("%d ", arr[i]);
    }

}

 

์„ ํƒ์ •๋ ฌ ํŠน์ง• ๋ฐ ์‹œ๊ฐ„ ๋ณต์žก๋„

๋น„๊ต ํšŸ์ˆ˜
๋‘ ๊ฐœ์˜ for ๋ฃจํ”„์˜ ์‹คํ–‰ ํšŸ์ˆ˜

์™ธ๋ถ€ ๋ฃจํ”„: (n-1)๋ฒˆ
๋‚ด๋ถ€ ๋ฃจํ”„(์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ): n-1, n-2, … , 2, 1 ๋ฒˆ

๊ตํ™˜ ํšŸ์ˆ˜
์™ธ๋ถ€ ๋ฃจํ”„์˜ ์‹คํ–‰ ํšŸ์ˆ˜์™€ ๋™์ผ. ์ฆ‰, ์ƒ์ˆ˜ ์‹œ๊ฐ„ ์ž‘์—…
ํ•œ ๋ฒˆ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ 3๋ฒˆ์˜ ์ด๋™(SWAP ํ•จ์ˆ˜์˜ ์ž‘์—…)์ด ํ•„์š”ํ•˜๋ฏ€๋กœ 3(n-1)๋ฒˆ
T(n) = (n-1) + (n-2) + … + 2 + 1 = n(n-1)/2 = O(n^2)

 

 

728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ”์ •๋ ฌ(Bubble Sort)์ด๋ž€?
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž…์ •๋ ฌ(Insertion Sort)์ด๋ž€?
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์œ„์ƒ ์ •๋ ฌ(Topological Sort)์ด๋ž€?
  • [์ž๋ฃŒ๊ตฌ์กฐ] ํž™์ •๋ ฌ(Heap Sort)์ด๋ž€?
juno1105
juno1105
๊ณต๋ถ€ํ•˜๋Š” ๊ฒธ ํฌํด ๋ธ”๋กœ๊ทธ
  • juno1105
    @juno1105
    juno1105
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (89)
      • ๐Ÿ’ฌ ์ž์œ  (3)
      • ๐Ÿ“– ์–ดํ•™ ๊ณต๋ถ€ (0)
      • ๐Ÿ“” ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ (4)
      • ๐Ÿ›  ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฒ• (1)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
        • ์Šคํƒ (4)
        • ํ (4)
        • ์ •๋ ฌ ๋ฐ ํƒ์ƒ‰ (17)
        • ๋ฆฌ์ŠคํŠธ (5)
        • ํ•ด์‹œ (1)
        • ํŠธ๋ฆฌ (8)
        • ํž™ (2)
        • ๊ทธ๋ž˜ํ”„ (12)
      • ๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ (0)
      • ๐Ÿšฅ ๋…ผ๋ฆฌํšŒ๋กœ (8)
      • ๐Ÿ”ฐ ๋ฐฑ์ค€ (20)
        • ํ, ์Šคํƒ, ๋ฑ (0)
        • DFS ์™€ BFS (3)
        • ๊ทธ๋ฆฌ๋”” (0)
        • ๋™์ ๊ณ„ํš๋ฒ• 1 (16)
        • ๋™์ ๊ณ„ํš๋ฒ• 2 (0)
        • ์ตœ๋‹จ ๊ฒฝ๋กœ (0)
        • ํŠธ๋ฆฌ (0)
        • ๋ฐฑํŠธ๋ž˜ํ‚น (0)
        • ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ (0)
        • ์ง‘ํ•ฉ๊ณผ ๋งต (1)
      • ๐ŸŒˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (0)
      • ๐Ÿ“ฑ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ์ž๋ฃŒ๊ตฌ์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ปค๋ฆฌํ˜๋Ÿผโœจ
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋น…์˜คํ‘œ๊ธฐ๋ฒ•
    ํ† ์ต 920์ 
    ํ† ์ต 950์ 
    ํ† ์ต 900์ 
    ๊ทธ๋ž˜ํ”„ํƒ์ƒ‰
    ํ† ์ต 910์ 
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ •๋ ฌ ์ตœ์„ ์˜ ๊ฒฝ์šฐ
    ํ† ์ต 900์ ๋Œ€
    ์‹œ๊ฐ„๋ณต์žก๋„
    ์ •๋ ฌ
    ์ตœ๋‹จ๊ฒฝ๋กœ
    ์ •๋ ฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ
    ํ† ์ต 900
    ํ† ์ต
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
juno1105
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ(Selection Sort)์ด๋ž€?
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”