파이썬에서 버블 정렬을 구현하는 방법은 무엇입니까?



이 블로그에서는 스왑 방법을 사용하여 버블 정렬을 사용하여 Python 목록을 정렬하는 코드와 설명을 배웁니다.

정렬은 요소 간의 선형 관계에 따라 증가 또는 감소하는 순서로 데이터를 정렬하는 것을 의미합니다. 버블 정렬에 대한이 기사 이 개념을 자세히 이해하는 데 도움이됩니다.

이 블로그에서는 아래 주제를 다룰 것입니다.





버블 정렬이란?

버블 정렬은 싱크 정렬이라고도합니다. 정렬 할 목록을 연속적으로 단계별로 살펴보고 인접한 항목의 각 쌍을 비교하고 올바른 순서가 아닌 경우 서로 교체하는 간단한 정렬 알고리즘입니다. 목록이 정렬 될 때 더 이상 스왑이 필요하지 않을 때까지 단계가 반복됩니다.

거품 정렬을 수행하는 단계

  • 목록의 첫 번째와 두 번째 요소를 비교하고 순서가 잘못된 경우 교체합니다.
  • 두 번째와 세 번째 요소를 비교하고 순서가 잘못된 경우 서로 바꿉니다.
  • 유사한 방식으로 목록의 마지막 요소까지 유사하게 진행하십시오.
  • 목록이 정렬 될 때까지 위의 모든 단계를 계속 반복하십시오.

위의 단계는 다음 시각화를 통해 더 명확해질 것입니다.



Python의 버블 정렬-Edureka



이 키워드를 사용하는 6 가지 방법은 무엇입니까?

버블 정렬 알고리즘

이제 버블 정렬의 알고리즘을 살펴 보겠습니다.

첫 번째 패스 :

( 16.19 , 11,15,10)-> ( 16.19 , 11,15,10) – 알고리즘은 처음 두 요소를 비교하고 19> 16 이후 교체합니다.

(16, 19.11 , 15.10)-> (16, 11.19 , 15.10) – 19> 11 이후 스왑

(16.11, 19.15 , 10)-> (16,11, 15.19 , 10) – 19> 15 이후 스왑

(16,11,15, 19.10 )-> (16,11,15, 10.19 ) – 이제 이러한 요소가 이미 올바른 순서 (19> 10)에 있으므로 알고리즘이 요소를 교체하지 않습니다.

두 번째 패스 :

( 16.11 , 15,10,19)-> ( 11.16 , 15,10,19) – 16> 11 이후 스왑

(열한, 16.15 , 10.19)-> (11, 15.16 , 10,19) – 16> 15 이후 스왑

(11.15, 16.10 , 19)-> (11,15, 10.16 , 19) – 16> 10 이후 스왑

(11,15,10,16,19)-> (11,15,10,16,19)

그만큼 정렬되었지만 우리의 알고리즘은 완료되었는지 알지 못합니다. 따라서 정렬되었는지 알기 위해 스왑없이 또 다른 전체 패스가 필요합니다.

세 번째 패스 :

객체를 배열 PHP로 전환

(열한, 15.10 , 16,19)-> (11, 15.10 , 16,19)

(열한, 15.10 , 16,19)-> (11, 10.15 , 16,19) – 15> 10 이후 스왑

(11,10,15,16,19)-> (11,10,15,16,19)

double을 int java로 변환하는 방법

(11,10,15,16,19)-> (11,10,15,16,19)

네 번째 패스 :

( 11.10 , 15,16,19)-> ( 10.11 , 15,16,19) – 11> 10 이후 스왑

최종 출력은 (10,11,15,16,19)입니다.

이제 코드를 작성하겠습니다.

버블 정렬을 구현하는 Python 프로그램

a = [16, 19, 11, 15, 10, 12, 14]

#repeating loop len (a) (number of elements) number of j for j in range (len (a)) : #initially swapped is false swapped = False i = 0 while ia [i + 1] : #swapping a [i ], a [i + 1] = a [i + 1], a [i] # swapped 값 변경 = True i = i + 1 # swapped가 false이면 목록이 정렬됩니다. # 루프를 중지 할 수 있습니다. 스왑 된 경우 == False : 인쇄 중단 (a)
 산출: 


위 코드에서 인접한 숫자를 비교하고 순서가 올바르지 않으면 서로 바꿉니다. 동일한 프로세스 len (a)를 여러 번 반복합니다. 변수 'swapped'를 할당하고 반복에서 두 요소가 교환되는 경우 'True'로 설정했습니다. 그리고 요소의 상호 교환이 없으면 목록이 이미 정렬되어 있으므로 'swapped'값에 변화가 없으며 루프를 끊을 수 있습니다.

이것으로 '파이썬에서 버블 정렬을 구현하는 방법'이라는 제목의 블로그를 마칩니다. 콘텐츠가 Python 지식에 가치를 더하기를 바랍니다.

가능한 한 많이 연습하고 경험을 되 돌리십시오.

질문이 있으십니까? 이 '파이썬에서 버블 정렬을 구현하는 방법'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.

다양한 응용 프로그램과 함께 Python에 대한 심층적 인 지식을 얻으려면 라이브에 등록 할 수 있습니다. 연중 무휴 지원 및 평생 액세스.