์ž๋ฃŒ๊ตฌ์กฐ

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

stoneeee 2022. 3. 26. 21:36

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

์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N**2)๋กœ ํšจ์œจ์ ์ธ ์ •๋ ฌ ๋ฐฉ์‹์€ ์•„๋‹ˆ๋‹ค.

 

 

 

์•„๋ž˜์˜ ๋ฐฐ์—ด์„ ๋ฒ„๋ธ” ์ •๋ ฌ์„ ์ด์šฉํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ณด์ž. ์ง€๊ธˆ๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๋Š” i๋กœ ํ‘œํ˜„ํ•˜๊ฒ ๋‹ค.

 

 

๋จผ์ €, i = 0๊ณผ i = 1์˜ ์š”์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ๋” ํฐ ์ˆ˜๊ฐ€ ์™ผ์ชฝ์— ์žˆ์œผ๋ฏ€๋กœ ์„œ๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค. 

 

 

i = 1๊ณผ i = 2๋ฅผ ๋น„๊ตํ•œ๋‹ค. ๋” ํฐ ์ˆ˜๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

 

i = 2์™€ i = 3์„ ๋น„๊ตํ•œ๋‹ค. ๋” ํฐ ์ˆ˜๊ฐ€ ์™ผ์ชฝ์— ์žˆ์œผ๋ฏ€๋กœ ์„œ๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

 

i = 3๊ณผ i = 4๋ฅผ ๋น„๊ตํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋” ํฐ ์ˆ˜๊ฐ€ ์™ผ์ชฝ์— ์žˆ์œผ๋ฏ€๋กœ ์„œ๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

 

(len(array) - 1) ๋ฒˆ์˜ ์‹œํ–‰์„ ํ†ตํ•ด ๊ฐ€์žฅ ํฐ ์š”์†Œ์ธ 5๊ฐ€ ์ œ์ผ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

5๋Š” ๊ทธ๋Œ€๋กœ ๊ณ ์ •ํ•ด๋‘๊ณ , ๋‚˜๋จธ์ง€ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์ •๋ ฌ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•œ๋‹ค.

 

 

4๊ฐ€ ๊ณ ์ •๋˜์—ˆ๋‹ค. ์‚ฌ์‹ค ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์—ˆ์ง€๋งŒ, ์ปดํ“จํ„ฐ๋Š” ์ด ์‚ฌ์‹ค์„ ์•Œ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋งˆ์ € ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

 

 

๋ฒ„๋ธ” ์ •๋ ฌ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค!

 

 

 

๋ฒ„๋ธ” ์ •๋ ฌ์„ ํŒŒ์ด์ฌ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

def BubbleSort(lst):
	N = len(lst)
	for i in range(N-1):
		for j in range(N-1-i):
			if lst[j] > lst[j+1]:
				lst[j], lst[j+1] = lst[j+1], lst[j]

์™ผ์ชฝ ์š”์†Œ๋ถ€ํ„ฐ ๊ณ ์ •์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

def BubbleSort2(lst):
    N = len(lst)
    for i in range(N-1):
		for j in range(N-1, i, -1):
			if lst[j] < lst[j-1]:
				lst[j], lst[j-1] = lst[j-1], lst[j]

 

'์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2 - ์„ ํƒ ์ •๋ ฌ(selection sort)  (0) 2022.03.29