1. ๋ฒ„๋ธ”์ •๋ ฌ(bubble sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์„œ๋กœ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋” ์ž‘์€ ๊ฐ’์„ ์•ž์œผ๋กœ ๋ณด๋‚ด์–ด ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ธ์ ‘ํ•œ 2๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํฌ๊ธฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด ์„œ๋กœ ๊ตํ™˜
  • ์„ ํƒ ์ •๋ ฌ๊ณผ ๊ธฐ๋ณธ ๊ฐœ๋…์ด ์œ ์‚ฌ
    โ†’ ๋ฒ„๋ธ”์ •๋ ฌ : ์š”์†Œ๋ฅผ ๊ตํ™˜ ์ •๋ ฌ / ์•ˆ์ •์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ์†๋„๋А๋ฆผ / ๊ฐ„๋‹จํ•˜๊ณ  ๋น„ํšจ์œจ์ 
    โ†’ ์„ ํƒ์ •๋ ฌ : ์š”์†Œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ •๋ ฌ / ๋ถˆ์•ˆ์ •ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋ฒ„๋ธ”์ •๋ ฌ์— ๋น„ํ•ด ๋น ๋ฆ„ / ํšจ์œจ์ 
    โ€ป ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชฉ๋ก์ด๋‚˜ ๋ฐฐ์—ด์—์„œ ์ •๋ ฌ ์ „ ๋ฐœ์ƒํ•˜๋Š” ๋™์ผํ•œ ์ˆœ์„œ๋กœ ๋™์ผํ•œ ํ‚ค๊ฐ€ ์žˆ๋Š” ์š”์†Œ๊ฐ€ ์•ˆ์ •์ ์ด๋ผ ๊ฐ„์ฃผ

 

2. ๋ฒ„๋ธ”์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„

์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ์™€ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ, ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ์™€ ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ, ์„ธ ๋ฒˆ์งธ์™€ ๋„ค ๋ฒˆ์งธ๋ฅผ ๋น„๊ต โ€ฆ

์ด๋Ÿฐ ์‹์œผ๋กœ (๋งˆ์ง€๋ง‰-1)๋ฒˆ์งธ ์ž๋ฃŒ์™€ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜ํ•˜๋ฉด์„œ ์ž๋ฃŒ๋ฅผ ์ •๋ ฌ.

 

#include <stdio.h>
#include <stdlib.h>

int main() {
	int i, j, temp;
	int arr[10] = { 1, 9, 4, 6, 11, 10, 3, 15, 2, 13 };
	for (i = 0; i < 10; i++) {
		for (j = 0; j < 9 - i; j++) {
			if (arr[j] > arr[j + 1]) {
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for (i = 0; i < 10; i++)
		printf("%d ", arr[i]);

	return 0;
}

 

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

3-1. ์žฅ์ 

  • ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๋‹ค.

3-2. ๋‹จ์ 

  • ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ์™ผ์ชฝ์—์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด์—์„œ ๋ชจ๋“  ๋‹ค๋ฅธ ์š”์†Œ๋“ค๊ณผ ๊ตํ™˜๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ์—ฐ์‚ฐ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์•„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€์žฅ ๋А๋ฆฌ๊ณ  ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์ •๋ ฌ๋ฐฉ์‹.

โ†’ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฃŒ์˜ ๊ตํ™˜์ž‘์—…(SWAP)์ด ์ž๋ฃŒ์˜ ์ด๋™์ž‘์—…(MOVE)๋ณด๋‹ค ๋” ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์—     
๋ฒ„๋ธ”์ •๋ ฌ์€ ๋‹จ์ˆœ์„ฑ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฑฐ์˜ ์“ฐ์ด์ง€ ์•Š์Œ

 

 

 

๋”๋ณด๊ธฐ

+ Recent posts