Python3 표준 라이브러리 : 양분은 정렬 된 목록을 유지

1. 양분은 정렬 된 목록을 유지

여전히 정렬 된 목록을 유지하면서 이등분 모듈은 구현 알고리즘은, 요소들의리스트에 삽입한다.

삽입 1.1 주문

이용 insort ()가 정렬 된 순서리스트에 요소를 삽입 할 위치를 간단한 예는 아래에 주어진다.

가져올 이등분 

#의 난수의 시리즈 
= [14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 77, 1 값 ] 

인쇄 ( " 새 순위 내용 ' )
 인쇄 ( "이 - - --- -------- ' ) 

L = []
 에 대한 I 값 : 
    위치 = bisect.bisect (L, I) 
    bisect.insort (L, I) 
    인쇄 ( " {3} { 3} ' .format (I, 위치) l)

첫번째 컬럼은 난수의 새로운 출력을 나타낸다. 두 번째 라운드는 방송의 수는리스트에 삽입되는 것이다. 각 행은 현재 정렬 된 목록의 나머지 부분입니다.

이는 매우 간단한 예이고리스트이어서 빠를 수 종류 작성 직접 구성되는 경우 사실상 데이터의 양이 실시 예에서의 처리. 그러나 긴 목록을 위해,이 삽입 정렬 알고리즘 같은 시간의 사용이 크게 특히 작업의 회원이리스트는 중요한 계산 오버 헤드를 필요로 비교하는 시간과 메모리를 절약 할 수 있습니다. 

1.2 처리 반복

결과 집합을 표시하기 전에 중복 값 (77)을 포함한다. 이등분 모듈은 핸들 중복에 두 가지 방법을 제공합니다. 새 값이 왼쪽이나 오른쪽으로 원래 값으로 삽입 할 수 있습니다. insort () 기능이 기능은 원래의 값 이후 새로운 값을 삽입하는 것, 실제로 insort_right () 별명이다. insort_left () 함수에 대응하는 새로운 값은 원래의 값 앞에 삽입된다.

가져올 이등분 

#의 난수의 시리즈 
= [14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 77, 1 값 ] 

인쇄 ( " 새 순위 내용 ' )
 인쇄 ( "이 - - --- -------- ' ) 

# 사용 bisect_left 및 insort_left. 
L = []
 에 대한 I 값 : 
    위치 = bisect.bisect_left (L, i)는 
    bisect.insort_left (L, I) 
    인쇄 ( " {3} {3} ' .format (I, 위치) l)

() insort_left bisect_left ()을 사용하여 동일한 데이터를 처리 할 때와 동일한 결과가 반복되는 값의 순서리스트하지만 다른 삽입 위치이다.

추천

출처www.cnblogs.com/liuhui0308/p/12342889.html