์ƒˆ์†Œ์‹

๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฒ„๋ธ” ์ •๋ ฌ (bubble sort)

  • -

 

* ๋ฒ„๋ธ”์ •๋ ฌ์˜ ๊ฐœ๋…

 

  • ๋‘ ์ธ์ ‘ํ•œ ์›์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ, ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํ•˜๋‹ค.
  • ๊ตํ™˜์ •๋ ฌ์˜ ์ผ๋ถ€์— ์†ํ•œ๋‹ค.
  • ์›์†Œ๊ฐ€ ์ด๋™ํ•˜๋Š” ๋ชจ์Šต์ด ๊ฑฐํ’ˆ์ด ์ˆ˜๋ฉด์œ„๋กœ ์˜ฌ๋ผ์˜ค๋Š” ๋“ฏํ•œ ๋ชจ์Šต๊ณผ ๊ฐ™๋‹ค๊ณ ํ•ด์„œ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

* ์ •๋ ฌ์˜ ๊ณผ์ •

 

  • ๋ฒ„๋ธ”์ •๋ ฌ๋กœ ์ •๋ ฌ์„ ํ• ๋•Œ๋Š”, ์›์†Œ์˜ ๊ฐฏ์ˆ˜๋งŒํผ์˜ ์ˆœํšŒ๋ฅผ ํ•˜๊ฒŒ๋œ๋‹ค.
  • 1ํšŒ์ฐจ๋•Œ๋Š” ๊ฐ€์žฅ ํฐ์ˆ˜๊ฐ€, 2ํšŒ์ฐจ๋•Œ๋Š” ๋‘๋ฒˆ์งธ๋กœ ํฐ์ˆ˜..... ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ€์žฅ ํฐ์ˆ˜๋ถ€ํ„ฐ ์ž๊ธฐ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ํšŒ์ฐจ๋ฅผ ๊ฑฐ๋“ญํ• ์ˆ˜๋ก 1ํšŒ์”ฉ ์ •๋ ฌ์˜ ํšŸ์ˆ˜๊ฐ€ ์ ์–ด์ง€๊ฒŒ๋œ๋‹ค. (์ž๊ธฐ์ž๋ฆฌ๋ฅผ ์ฐพ์€ ๋ถ€๋ถ„์€ ์ •๋ ฌํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ)
  • array = [7,4,6,1] ์ด๋ผ๋Š” ๋ฐฐ์—ด์„ ๋ฒ„๋ธ”์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ์ž‘์€์ˆ˜๊ฐ€ ์•ž์— ์˜ค๋„๋ก ์ •๋ ฌํ•œ๋‹ค๋ฉด

 

 


 

 

* 1ํšŒ์ฐจ : ๊ฐ€์žฅ ํฐ์ˆ˜(7)๊ฐ€ ์ •๋ ฌ๋œ๋‹ค.

์ •๋ ฌํšŸ์ˆ˜ : 3ํšŒ

* 2ํšŒ์ฐจ : ๋‘๋ฒˆ์งธ ํฐ์ˆ˜(6)์ด ์ •๋ ฌ๋œ๋‹ค. (์ด๋ฏธ ์ •๋ ฌ์„ ๋งˆ์นœ ๋งจ ๋’ท๋ถ€๋ถ„์€ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š”๋‹ค.)

์ •๋ ฌํšŸ์ˆ˜ : 2ํšŒ

* 3ํšŒ์ฐจ : ์„ธ๋ฒˆ์งธ ํฐ์ˆ˜(4)์ด ์ •๋ ฌ๋œ๋‹ค. 

์ •๋ ฌํšŸ์ˆ˜ : 1ํšŒ

* ์‹œ๊ฐ„๋ณต์žก๋„

 

์›์†Œ๊ฐ€ 4๊ฐœ์ธ ๋ฐฐ์—ด์„ ๋ฒ„๋ธ”์ •๋ ฌํ–ˆ์„๋•Œ(์œ„์˜ ์˜ˆ์‹œ)

n = ์›์†Œ์˜ ๊ฐœ์ˆ˜

n-1 = 3 ๋ฒˆ ํšŒ์ฐจ๊ฐ€ ์กด์žฌํ–ˆ๋‹ค.

๊ฐ ํšŒ์ฐจ๋งˆ๋‹ค ์ •๋ ฌํšŸ์ˆ˜๋Š” (n-1) + (n-2) + (n-3) = 3 + 2+ 1 ์ด์—ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ผ๋ฐ˜ํ™” ํ•ด๋ณด๋ฉด ( n*(n-1) ) / 2

์ฆ‰,O(n²)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

 

 

* ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„

def bubble(n, data):
    for i in range(n-1):
        for j in range(n-1-i):
            if data[j] > data[j+1]:
                data[j],data[j+1] = data[j+1], data[j] 
    for i in range(n):
        print(data[i], end = ' ')



n = int(input())
data = list(map(int,input().split()))

bubble(n, data)
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.