μ•Œκ³ λ¦¬μ¦˜

μ•Œκ³ λ¦¬μ¦˜ [Algorithm] - 버블 μ •λ ¬ Bubble Sort (2) (C, Python)

Mainyoung 2022. 3. 6. 18:24

버블정렬

μ΄λ²ˆμ—λŠ” 버블 정렬에 λŒ€ν•΄ μ•Œμ•„λ³΄μž. λ²„λΈ”μ •λ ¬μ΄λž€ λ°”λ‘œ κ°€κΉŒμ΄μ— μžˆλŠ” 두 숫자끼리 비ꡐλ₯Ό ν•΄μ„œ λ‹Ήμž₯ 더 μž‘μ€ 숫자λ₯Ό μ•žμœΌλ‘œ λ³΄λ‚΄μ£ΌλŠ” 것을 λ°˜λ³΅ν•˜λŠ” 것이닀. μ˜†μ— μžˆλŠ” 값와 λΉ„κ΅ν•΄μ„œ 더 μž‘μ€ 값을 κ³„μ†ν•΄μ„œ μ•žμœΌλ‘œ 보낸닀면 큰 μˆ˜λΆ€ν„° μ°¨λ‘€λŒ€λ‘œ μ •λ ¬ 될 것이닀.


λ‹€μŒμ˜ μˆ«μžλ“€μ„ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”.

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