파이썬을 사용하여 버블 정렬 알고리즘을 구현

버블 정렬 알고리즘을 실행에 의한 고전적인 정렬 알고리즘은 극단적 인 값은 점차 같은, 그래서 이름이 나오는 수중 거품처럼 될 것입니다.

거품 정렬 프로세스 목록에서 좌측 버블이 마지막 최대 값이 우단으로부터 순차적으로 나타날 것이다 그래서, 교환기의 크기 및 위치에 따라, 인접하는 엘리먼트의 크기를 비교한다.

 

d088a9356bb0dc31844735204ffb458d1c158f78

파이썬은 버블 정렬을 구현 :

데프 bubble_sort (nums) :

    위해 범위 (렌 (nums) - 1 ) :

         J  범위 (렌 (nums) - 나 - 1 ) :

            만약 nums [J]> nums [J + 1 ]

                nums [J], nums [J + 1] = nums [J + 1 ] nums [J]

    반환 nums

파이썬 핵심 아이디어를 개략적으로 도시 된 바와 같이 두 개의 인접한 소자를 비교 한 후, 이에 순차 최대 값의 단부로 이동되도록 한 후 루프 요소를 통해, 반복주기 소자의 단부가 정렬리스트 기포를 달성하는 것이다.

9af0e4278f9c9fb8267f4be6f8590b611877a85b

지프는 약간의 문제에 넣지 마십시오, 그림을 넣고 싶었다.

 

일종의 거품의 시간 복잡도의 위의 코드를 파이썬 시간 복잡도의 실현에 대해 N 제곱 물론, 그 극단적 인 사례를 고려할 수 : 큐가 오름차순으로 정렬 또는 내림차순으로 정렬 할 때 스위칭 비교적 N-1를 필요로하면서, 다시 최종 정렬 케이스 시간 복잡도에 양호한 소형 ~ 대형만을 검사 할 수는,이 하강되면 O (N)는, 그때는 N-1 번을 스캔 할 필요가있다 배 N의 시간 복잡도의 제곱.

추천

출처www.cnblogs.com/pypypy/p/11960134.html