정렬은 요소 간의 선형 관계에 따라 증가 또는 감소하는 순서로 데이터를 정렬하는 것을 의미합니다. 버블 정렬에 대한이 기사 이 개념을 자세히 이해하는 데 도움이됩니다.
이 블로그에서는 아래 주제를 다룰 것입니다.
버블 정렬이란?
버블 정렬은 싱크 정렬이라고도합니다. 정렬 할 목록을 연속적으로 단계별로 살펴보고 인접한 항목의 각 쌍을 비교하고 올바른 순서가 아닌 경우 서로 교체하는 간단한 정렬 알고리즘입니다. 목록이 정렬 될 때 더 이상 스왑이 필요하지 않을 때까지 단계가 반복됩니다.
거품 정렬을 수행하는 단계
- 목록의 첫 번째와 두 번째 요소를 비교하고 순서가 잘못된 경우 교체합니다.
- 두 번째와 세 번째 요소를 비교하고 순서가 잘못된 경우 서로 바꿉니다.
- 유사한 방식으로 목록의 마지막 요소까지 유사하게 진행하십시오.
- 목록이 정렬 될 때까지 위의 모든 단계를 계속 반복하십시오.
위의 단계는 다음 시각화를 통해 더 명확해질 것입니다.
이 키워드를 사용하는 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에 대한 심층적 인 지식을 얻으려면 라이브에 등록 할 수 있습니다. 연중 무휴 지원 및 평생 액세스.