상각 분석이란 무엇입니까? 내 프로그램에서 최악의 성능 보장 을 달성하는 데 어떻게 도움이 됩니까?
내가 한 읽고 다음과 같은 기술이 프로그래머가 달성 할 수있는 최악의 경우 성능 보장 (즉, 내 자신의 말로 : 보증 그 프로그램의 실행 시간이 최악의 캐스트의 실행 시간을 초과하지 것이다) :
- 무작위 알고리즘 (예 : 퀵 정렬 알고리즘은 최악의 경우 이차적이지만 입력을 무작위로 정렬하면 실행 시간이 선형적임을 확률 적으로 보장 할 수 있습니다)
- 작업 순서 (우리의 분석은 클라이언트가 수행 한 데이터와 작업 순서를 모두 고려해야합니다)
- 할부 상환 분석 (성능 보장을 제공하는 또 다른 방법은 모든 작업의 총 비용을 작업 수로 나눈 값을 추적하여 비용을 상각하는 것입니다.이 설정에서 평균 비용을 유지하면서 일부 비싼 작업을 허용 할 수 있습니다. 다시 말해, 우리는 비용이 많이 드는 작업의 일부를 많은 저렴한 작업 각각에 할당하여 비용이 적게 드는 작업의 비용을 분산시킵니다)
저자는 할부 상환 분석을 달성하는 방법의 한 예로서 스택에 대한 배열 데이터 구조 의 크기 조정 사용을 언급 했지만 여전히 할부 상환 분석이 무엇인지, 최악의 달성을 위해 실제로 어떻게 상각 분석을 구현할 수 있는지 (데이터 구조? 알고리즘?) 이해하지 못합니다. 캐스트 성능 보장