You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
오른쪽부터 좌우 숫자를 비교하여 오른쪽 숫자가 더 작은 경우 둘의 위치를 바꾼다.
예)
원래 배열: 20 10 30 50 40
1번째 실행: 20 10 30 40 50
2번째 실행: 20 10 30 40 50
3번째 실행: 20 10 30 40 50
4번째 실행: 20 10 30 40 50
5번째 실행: 10 20 30 40 50
importsysn=int(sys.stdin.readline())
data=list(map(int, sys.stdin.readline().split()))
foriinrange(0, len(data)): # 0~4번 반복forjinrange(len(data)-1, i, -1): # 뒤에 있는 수부터 앞에 있는 수까지 비교하기ifdata[j-1] >data[j]: # 왼쪽 요소가 오른쪽 요소보다 더 크면data[j-1], data[j] =data[j], data[j-1] # 두 수의 인덱스 위치 변경print(data)
foriinrange(0, len(data)-1): # 반복 횟수는 뒷순서 인덱스로 갈수록 점점 줄어든다.forjinrange(len(data)-1, i, -1): # 뒤에 있는 수부터 앞에 있는 수까지 비교하기ifdata[j-1] >data[j]: # 왼쪽 요소가 오른쪽 요소보다 더 크면data[j-1], data[j] =data[j], data[j-1] # 두 수의 인덱스 위치 변경
20 10 30 50 40
(0,4): if arr[j-1]>arr[j] 50>40 이므로 자리를 바꾼다. [20 10 30 40 50]
(0,3): if arr[j-1]>arr[j] 30<40 이므로 자리를 바꾸지 않는다. [20 10 30 40 50]
(0,2): if arr[j-1]>arr[j] 10<30 이므로 자리를 바꾸지 않는다. [20 10 30 40 50]
(0,1): if arr[j-1]>arr[j] 20>10 이므로 자리를 바꾼다. [10 20 30 40 50]
(1,4)
(1,3)
(1,2)
(2,4)
(2,3)
(3,4)
모두 생략
(0, ), (1, ), (2, ), (3, ), (4, )부분이다.
foriinrange(0, len(data)-1): # 반복 횟수는 뒷순서 인덱스로 갈수록 점점 줄어든다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
버블 정렬: 오른쪽부터 왼쪽 방향으로 인접한 두 개의 숫자를 비교해서 교환하기.
오른쪽부터 좌우 숫자를 비교하여 오른쪽 숫자가 더 작은 경우 둘의 위치를 바꾼다.
예)
원래 배열: 20 10 30 50 40
1번째 실행: 20 10 30 40 50
2번째 실행: 20 10 30 40 50
3번째 실행: 20 10 30 40 50
4번째 실행: 20 10 30 40 50
5번째 실행: 10 20 30 40 50
20 10 30 50 40
(0,4): if arr[j-1]>arr[j] 50>40 이므로 자리를 바꾼다. [20 10 30 40 50]
(0,3): if arr[j-1]>arr[j] 30<40 이므로 자리를 바꾸지 않는다. [20 10 30 40 50]
(0,2): if arr[j-1]>arr[j] 10<30 이므로 자리를 바꾸지 않는다. [20 10 30 40 50]
(0,1): if arr[j-1]>arr[j] 20>10 이므로 자리를 바꾼다. [10 20 30 40 50]
(1,4)
(1,3)
(1,2)
(2,4)
(2,3)
(3,4)
모두 생략
(0, ), (1, ), (2, ), (3, ), (4, )부분이다.
( ,4), ( ,3), ( ,2), ( ,1) 부분이다.
(0, )은 (0 ,4), (0 ,3), (0 ,2), (0 ,1)
(1, )은 (1 ,4), (1 ,3), (1 ,2)
(2, )은 (2 ,4), (2 ,3)
(3, )은 (3 ,4)
(4, )은 for j in range(4, 4, -1)이므로 반복문을 빠져나간다.
Beta Was this translation helpful? Give feedback.
All reactions