๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ” ์ •๋ ฌ ๊ตฌํ˜„ (c์–ธ์–ด)

jaeyunim 2022. 11. 10. 20:36

๐ŸŒฟ๋ฒ„๋ธ” ์ •๋ ฌ์ด๋ž€?

๊ธฐ๋ณธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ๊ตํ™˜ํ•œ๋‹ค.

 

2์ค‘ for๋ฌธ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ O(n^2)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.


๐ŸŒฟ์ž‘๋™ ๋ฐฉ์‹

ํŽธ์˜์ƒ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…!

 

- ์ฒซ ๋ฃจํ”„์—์„œ

 

1๋ฒˆ์งธ์™€ 2๋ฒˆ์งธ ๋น„๊ต ํ›„ ๊ตํ™˜

2๋ฒˆ์งธ์™€ 3๋ฒˆ์งธ ๋น„๊ต ํ›„ ๊ตํ™˜

.

.

size-1๋ฒˆ์งธ์™€ size๋ฒˆ์žฌ ๋น„๊ตํ›„ ๊ตํ™˜

 

์ด๋Ÿฌ๋ฉด ์ตœ๋Œ“๊ฐ’์ด ๋งจ๋’ค์— ํ•˜๋‚˜ ์˜ฎ๊ฒจ์ง€๊ฒŒ ๋œ๋‹ค.

 

- ๋‘๋ฒˆ์งธ ๋ฃจํ”„์—์„œ 

1๋ฒˆ์งธ์™€ 2๋ฒˆ์งธ ๋น„๊ต ํ›„ ๊ตํ™˜

2๋ฒˆ์งธ์™€ 3๋ฒˆ์งธ ๋น„๊ต ํ›„ ๊ตํ™˜

.

.

size-2๋ฒˆ์งธ์™€ size-1๋ฒˆ์žฌ ๋น„๊ตํ›„ ๊ตํ™˜

 

์—ญ์‹œ ๋งจ๋’ค - 1 ๋ฒˆ์งธ์— ์ตœ๋Œ“๊ฐ’์ด ์˜ฎ๊ฒจ์ง„๋‹ค.

 

- ์œ„ ๊ณผ์ • ๋ฐ˜๋ณต!!

 

โญ๊ทธ๋ฆผ์„ ํ†ตํ•ด ์ดํ•ดํ•ด ๋ณด์ž

์ฒซ๋ฒˆ์งธ ๋ฃจํ”„์—์„œ ์ตœ๋Œ“๊ฐ’์ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ฒจ์ง€๋Š” ๊ณผ์ •

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด [i]์™€ [i+1]๋ฒˆ์งธ ๋น„๊ต์‹œ[ i+1]์˜ ๊ฐ’์ด ๋” ์ž‘์„๋•Œ ๊ตํ™˜์„ ํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋งŒ์•ฝ ๋” ํด ๋•Œ ๊ตํ™˜์„ ํ•ด์ค€๋‹ค๋ฉด?!

 

์ตœ์†Ÿ๊ฐ’์ด ๋งจ ๋’ค๋กœ ๊ฐ€๋ฏ€๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์ด ์™„์„ฑ๋œ๋‹ค.


๐ŸŒฟ์ฝ”๋“œ

#include <stdio.h>

void bubble_sort(int* arr, int size) {
	for (int i = size-1; i > 0; i--) {
		for (int j = 0; j < i; j++) {
			if (arr[j] > arr[j+1]) {
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}

int main()
{
	int arr[5] = { 5, 3, 4, 2, 1 };

	printf("์ •๋ ฌ ์ „\n");
	for (int i = 0; i < 5; i++) {
		printf("%d ", arr[i]);
	}

	bubble_sort(arr, 5);

	printf("\n์ •๋ ฌ ํ›„\n");
	for (int i = 0; i < 5; i++) {
		printf("%d ", arr[i]);
	}
}

๐ŸŒฟ์‹คํ–‰