๋ฒ„๋ธ”์ •๋ ฌ(BubbleSort)์ด๋ž€?

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

๋ฒ„๋ธ” ์ •๋ ฌ

๋ฒ„๋ธ”์ •๋ ฌ์€ ํ˜„์žฌ ์›์†Œ์™€ ๋‹ค์Œ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž์œผ๋ฉด ๊ตํ™˜ํ•˜๋Š” ์‹์˜ ์ •๋ ฌ์ด๋‹ค.

์›์†Œ๊ฐ€ ๊ฑฐํ’ˆ์ฒ˜๋Ÿผ ์˜ฌ๋ผ์˜ค๋Š” ๋“ฏํ•˜์—ฌ ๋ฒ„๋ธ”์ •๋ ฌ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


์ฒ˜์Œ 7๊ณผ 5๋ฅผ ๋น„๊ตํ•˜์—ฌ 7์ด ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. ์ดํ›„ ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ๋น„๊ตํ•ด์„œ ๊ฐ’์ด ๋” ํฌ๋‹ค๋ฉด ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

๋‹ค์‹œ 5์™€ 1์„ ๋น„๊ตํ•ด 5๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ด๋ฒˆ์—” ์ •๋ ฌ์ด ๋๋‚œ 7 ์ „๊นŒ์ง€๋งŒ ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณต ํ•ด์ค€๋‹ค.

๋‹ค์‹œ 1๊ณผ 4๋ฅผ ๋น„๊ตํ•˜์—ฌ 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ์ง€์•Š๋Š”๋‹ค.

์ดํ›„ 4์™€ 3์„ ๋น„๊ตํ–ˆ์„ ๋•Œ 4๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค.

1๊ณผ 3์„ ๋น„๊ตํ•˜์—ฌ 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ฒ„๋ธ”์ •๋ ฌ์ด ์™„๋ฃŒ๋œ๋‹ค.

 

๋ฒ„๋ธ”์ •๋ ฌ์˜ ํŠน์ง•

  • ๋ฒ„๋ธ”์ •๋ ฌ์€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(1)์ด๋‹ค. ์„ ํƒ์ •๋ ฌ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ SWAPํ•  ๋•Œ ํ•„์š”ํ•œ ์ž„์‹œ๋ณ€์ˆ˜ ์ •๋„์˜ ์ถ”๊ฐ€๊ณต๊ฐ„๋งŒ ์žˆ์œผ๋ฉด ๋˜๋ฏ€๋กœ IN-PLACE ์ •๋ ฌ์ด๋‹ค.
  • (N-1), (N-2) ... 1๋ฒˆ์˜ ํƒ์ƒ‰์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N^2)์ด๋‹ค.
  • ๋ฒ„๋ธ”์ •๋ ฌ์€ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์˜ ์ˆœ์„œ๊ฐ€ ์ •๋ ฌ ํ›„์—๋„ ์œ ์ง€๋˜๋ฏ€๋กœ STABLE์ •๋ ฌ์ด๋‹ค.

 

์ „์ฒด ์ฝ”๋“œ

#include <stdio.h>
#define LEN 5

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

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

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

    return 0;
}

์‹คํ–‰๊ฒฐ๊ณผ

728x90
'๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์ •๋ ฌ(Sort Algorithm)์ด๋ž€?
  • ํ€ต์ •๋ ฌ(QuickSort)์ด๋ž€?
  • ์‚ฝ์ž…์ •๋ ฌ(InsertionSort)์ด๋ž€?
  • ์„ ํƒ์ •๋ ฌ(Selection 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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

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

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
juno1105
๋ฒ„๋ธ”์ •๋ ฌ(BubbleSort)์ด๋ž€?
์ƒ๋‹จ์œผ๋กœ

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