๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜

์•Œ๊ณ ๋ฆฌ์ฆ˜ [Algorithm] - ๋ฒ„๋ธ” ์ •๋ ฌ Bubble Sort (2) (C, Python)

๋ฒ„๋ธ”์ •๋ ฌ

์ด๋ฒˆ์—๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋ฒ„๋ธ”์ •๋ ฌ์ด๋ž€ ๋ฐ”๋กœ ๊ฐ€๊นŒ์ด์— ์žˆ๋Š” ๋‘ ์ˆซ์ž๋ผ๋ฆฌ ๋น„๊ต๋ฅผ ํ•ด์„œ ๋‹น์žฅ ๋” ์ž‘์€ ์ˆซ์ž๋ฅผ ์•ž์œผ๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜†์— ์žˆ๋Š” ๊ฐ’์™€ ๋น„๊ตํ•ด์„œ ๋” ์ž‘์€ ๊ฐ’์„ ๊ณ„์†ํ•ด์„œ ์•ž์œผ๋กœ ๋ณด๋‚ธ๋‹ค๋ฉด ํฐ ์ˆ˜๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ •๋ ฌ ๋  ๊ฒƒ์ด๋‹ค.


๋‹ค์Œ์˜ ์ˆซ์ž๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

1 10 5 8 7 6 4 3 2 9


#include <stdio.h>

int main(void){
	int i,j,temp;
    int array[10] = {1,10,5,8,7,6,4,3,2,9};
    for(i=0;i<10;i++){
    	for(j=0;j<9-i;j++){
        	if(array[j]>array[j+1]){
        		temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
	
    for (i=0;i<10;i++){
    	printf("%d",array[i]);
    }
    return 0;
}

๋ฒ„๋ธ”์ •๋ ฌ์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ ๊ตฌํ˜„์€ ๊ฐ€์žฅ ์‰ฝ์ง€๋งŒ ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ๋ฐ, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์ ์ธ ์—ฐ์‚ฐ์ด ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์œผ๋กœ ์ผ์–ด๋‚˜๊ฒŒ ๋˜์–ด ์‹ค์ œ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๋А๋ฆฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ฒ„๋ธ”์ •๋ ฌ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์ด๋‹ค.

 

ํŒŒ์ด์ฌ

a = [1,10,5,8,7,6,4,3,2,9]

for i in range(len(a)):
  for j in range(len(a)-i-1):
    if a[j]> a[j+1]:
      tmp = a[j]
      a[j] = a[j+1]
      a[j+1] = tmp
a

์ด ๊ธ€์€ ๋‚˜๋™๋นˆ๋‹˜์˜ ์‹ค์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์ขŒ (Algorithm Programming Tutorial)๋ฅผ ์ฐธ๊ณ ํ•ด ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=qQ5iLNjpxSk&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz

 

728x90