1. ์„ ํƒ์ •๋ ฌ(Selection Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ œ์ž๋ฆฌ ์ •๋ ฌ(in-place sorting) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜
    → merge sort๋‚˜ quick sort์ฒ˜๋Ÿผ ์š”์†Œ๋ถ„ํ• ์‹œ ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ •๋ ฌ. ๋ฒ„๋ธ”, ์‚ฝ์ž…, ์„ ํƒ์ •๋ ฌ ๋“ฑ
  • ํ•ด๋‹น ์ˆœ์„œ์— ์›์†Œ๋ฅผ ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๊ณ , ๊ทธ ์œ„์น˜์— ์–ด๋– ํ•œ ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ฃผ์–ด์ง„ ๋ฐฐ์—ด ์ค‘ ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.
  • ๊ทธ ๊ฐ’์„ ๋งจ ์•ž์— ์œ„์น˜ํ•œ ๊ฐ’๊ณผ ๊ต์ฒด
  • ๋งจ ์ฒ˜์Œ ์œ„์น˜๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ต์ฒด
  • ํ•˜๋‚˜์˜ ์›์†Œ๋งŒ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ์œ„ ๋ฐฉ๋ฒ•์„ ๋ฐ˜๋ณต

 

2. ์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„

# include <stdio.h>
# define SWAP(x, y, temp) ( (temp)=(x), (x)=(y), (y)=(temp) )
# define MAX_SIZE 5

// ์„ ํƒ ์ •๋ ฌ
void selection_sort(int list[], int n){
  int i, j, least, temp;

  // ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋Š” ์ž๋™์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— (์ˆซ์ž ๊ฐœ์ˆ˜-1) ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค.
  for(i=0; i<n-1; i++){
    least = i;

    // ์ตœ์†Ÿ๊ฐ’์„ ํƒ์ƒ‰ํ•œ๋‹ค.
    for(j=i+1; j<n; j++){
      if(list[j]<list[least])
        least = j;
    }

    // ์ตœ์†Ÿ๊ฐ’์ด ์ž๊ธฐ ์ž์‹ ์ด๋ฉด ์ž๋ฃŒ ์ด๋™์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    if(i != least){
        SWAP(list[i], list[least], temp);
    }
  }
}

void main(){
  int i;
  int n = MAX_SIZE;
  int list[n] = {9, 6, 7, 3, 5};

  // ์„ ํƒ ์ •๋ ฌ ์ˆ˜ํ–‰
  selection_sort(list, n);

  // ์ •๋ ฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
  for(i=0; i<n; i++){
    printf("%d\n", list[i]);
  }
}

 

 

 

3. ์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์ง•

3-1. ์žฅ์ 

  • ๊ตฌํ˜„์ด ์‰ฝ๋‹ค.
  • ์ž๋ฃŒ ์ด๋™ ํšŸ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ๊ฒฐ์ •๋จ.
  • ๋น„๊ตํ•˜๋Š” ํšŸ์ˆ˜์— ๋น„ํ•ด ๊ตํ™˜์ด ์ ๊ฒŒ ์ผ์–ด๋‚จ.

3-2. ๋‹จ์ 

  • ์•ˆ์ •์„ฑ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
    → ๊ฐ’์ด ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒ๋Œ€์ ์ธ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ๋น„ํšจ์œจ
    → ๋ฒ„๋ธ”์ •๋ ฌ์— ๋น„ํ•ด ์กฐ๊ธˆ ๋” ๋น ๋ฅธ ์ •๋ ฌ๋ฐฉ์‹

 

๋”๋ณด๊ธฐ

์ฐธ๊ณ ) https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html

 

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ(selection sort)์ด๋ž€ - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

์ฐธ๊ณ ) https://cocoon1787.tistory.com/687

 

[Algorithm] ์„ ํƒ ์ •๋ ฌ(Selection Sort) ์ด๋ž€?

๐Ÿ“– ์„ ํƒ ์ •๋ ฌ(Selection Sort)์ด๋ž€? ์„ ํƒ ์ •๋ ฌ(Selection Sort)์€ ํ•ด๋‹น ์ˆœ์„œ์— ์›์†Œ๋ฅผ ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๊ณ , ๊ทธ ์œ„์น˜์— ์–ด๋– ํ•œ ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๐Ÿ”Ž ์„ ํƒ ์ •๋ ฌ์˜ ํŠน์ง• ์‹œ

cocoon1787.tistory.com

์ฐธ๊ณ ) https://yabmoons.tistory.com/250

 

[ ์ •๋ ฌ ] ์ •๋ ฌ๋ณ„ ์žฅ๋‹จ์  ๋ฐ ์‹œ๊ฐ„๋ณต์žก๋„

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ •๋ ฌ๋ณ„ ์žฅ๋‹จ์  ๋ฐ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋น„๊ตํ•จ์œผ๋กœ์จ ์–ด๋–ค ์ •๋ ฌ์ด ์ œ์ผ ์ข‹๊ณ  ๋‚˜์œ์ง€๋ฅผ ์•Œ์•„๋ณด์ž ! ์‚ฌ์‹ค ์ด ์ •๋ ฌ๋ฒ•์ด ๋ฌด์กฐ๊ฑด ์ œ์ผ ์ข‹์•„์š” ! ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ ฌ๋ฒ•์€ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ

yabmoons.tistory.com

 

+ Recent posts