본문 바로가기
Python

파이썬 버블 정렬

by 코딩하는 욤욤이 2024. 1. 28.
반응형

파이썬 버블정렬에 대해 알아보겠습니다.

버블 정렬에서 우리가 해야 할 일은 배열의 처음 두 요소를 선택하고 첫 번째 요소가 두 번째 요소보다 큰지 비교한 다음 서로 바꾸는 것입니다. 그런 다음 다음 두 요소를 선택하고 비교하는 등의 작업을 수행합니다.

배열을 한 번 이동한 후 가장 큰 숫자가 마지막 인덱스에 배치됩니다.

전체 배열을 정렬하려면 배열을 (n-1) 번 이동해야 합니다. 여기서 n은 배열의 길이입니다.

파이썬 버블 정렬



배열이 있다고 가정해 보겠습니다.

21,14,18,25,9

파이썬 버블 정렬


패스-1:

우리가 알고 있듯이 14는 21보다 작으므로 이를 교환하고 다음 두 요소를 선택합니다.

파이썬 버블 정렬


이번에도 18은 21보다 작으므로 이를 교환하고 다음 두 요소를 선택해야 합니다.

파이썬 버블 정렬


25는 21보다 크므로 서로 바꿀 필요가 없습니다. 이제 다음 두 요소를 선택하세요.

파이썬 버블 정렬


9는 25보다 작습니다. 서로 바꿔보세요.

파이썬 버블 정렬

 

그래서 여기서 우리는 배열을 한 번 이동했으며 가장 큰 숫자가 마지막 인덱스에 배치되었습니다.

위에서 언급했듯이 전체 배열을 정렬하려면 배열(n-1) 번을 이동해야 합니다. 여기서 n은 배열의 길이입니다.

그래서 우리는 그것을 Pass-1이라고 명명합니다.

Pass-2를 시작해 보겠습니다.

패스-2:

이번에는 Pass-1 이후에 정렬되어 있으므로 마지막 인덱스를 확인할 필요가 없습니다.

파이썬 버블 정렬
파이썬 버블 정렬
파이썬 버블 정렬
파이썬 버블 정렬


Pass-2를 완료한 후 마지막 두 요소가 정렬되었습니다.

 

따라서 Pass-3에서는 이를 확인할 필요가 없습니다.

패스-3:

파이썬 버블 정렬
파이썬 버블 정렬
파이썬 버블 정렬


Pass-3을 완료하면 배열의 마지막 3개 요소가 정렬된 순서로 정렬됩니다.

패스-4:

파이썬 버블 정렬
파이썬 버블 정렬


우리는 배열 (n-1) 번 여행했습니다. 배열이 정렬되었습니다.

“ 매 단계마다 가장 큰 요소가 거품이 표면으로 떠오르는 것처럼 올바른 순서로 이동하는 경향이 있기 때문에 이를 BUBBLE SORT라고 합니다.”

연산
배열 Arr[n]이 있습니다. 여기서 n은 요소 수입니다.

단계:1-  패스 설정 =1

단계:2- 인덱스 = 0으로 설정

단계:3- Arr[index]>Arr[index+1]인 경우

그런 다음 Arr[index]를 Arr[index+1]로 바꿉니다.

인덱스를 1만큼 늘립니다.

단계:4- index<=n-pass-1까지 단계:3으로 이동

[통과하면 정렬된 요소를 다시 확인하지 못하게 됩니다.]

단계:5- 패스를 1만큼 증가시키고 패스<=n-1까지 단계:2로 이동합니다.

Python의 버블 정렬 프로그램

Arr = [21,14,18,25,9]
n = len(Arr)   #length
 
Pass = 1
 
while(Pass<=n-1):
  index = 0
  while(index<=n-Pass-1):
    if Arr[index]>Arr[index+1]:
     Arr[index],Arr[index+1] = Arr[index+1],Arr[index]    #swapping
  
    index = index+1
  
  Pass =Pass + 1
 
for item in Arr:
  print item,


산출

9 14 18 21 25

반응형

'Python' 카테고리의 다른 글

Python 선형 검색  (1) 2024.01.29
Python 이진 검색  (0) 2024.01.29
Python 선택 정렬  (1) 2024.01.28
Python 삽입 정렬  (0) 2024.01.28
Python 빠른 정렬  (1) 2024.01.28