"비 병리학 적 데이터"란 무엇을 의미합니까?


14

Coursera에서 알고리즘 수업을 들었습니다. 해시 테이블에 관한 비디오의 교수는

사실은 비 병리학 적 데이터의 경우 제대로 구현 된 해시 테이블에서 일정한 시간 작업을 수행한다는 것입니다.

"비 병리학 적 데이터"란 무엇을 의미합니까? 몇 가지 예를 들어 줄 수 있습니까?

답변:


15

병리학적인 데이터는 의도 한 계산에 어떤 식 으로든 잘못되게하는 데이터로 간주됩니다. 실제 용도로는 드물게 병리학 이라고 할 수 있으므로 대부분 정상적으로 작동합니다. 이것은 때때로 수학적으로 더 정확 해지지 만 (예를 들어, 확률로), 병적 인 단어를 종종 비공식적으로 사용합니다.

예를 들어, 토마토 샐러드와 케첩은 병리학적인 사람들을 제외하고는 훌륭한 음식으로 토마토에 알레르기가있는 사람들을 의미합니다. 실제로 어떤 경우에는 죽일 수 있습니다. 그러나 토마토에 알레르기가있는 사람들은 매우 드물기 때문에 병리학 적 사례를 제외하고 토마토 요리가 우수하다고 간주됩니다.

영형(2)영형(lg)영형(lg)영형(lg)영형() 병합 정렬

영형(2)


1
정렬을 제외 하고 퀵 정렬이 불안정 하지만 병합 정렬은 안정적 이어야합니다 .
wchargin 2016 년

11

병리학 적 데이터는 알고리즘의 성능을 저하시키는 데이터입니다. 해시 테이블의 경우 병리학 데이터는 충돌을 일으키는 데이터입니다. 물론 사용중인 해시 함수에 따라 다릅니다.

예를 들어, 해시 함수가 문자를 함께 추가하는 경우 : hash("abcd") = 'a' + 'b' + 'c' + 'd'. 그런 다음 병리학 적 데이터는 다음과 같습니다.

{"abcd", "dcba", "cbda", ...}. 모든 순열은 "abcd"동일한 위치로 해시되므로 처음에는 피하려고 시도한 연결된 목록으로 끝납니다.

비 병리학 데이터는 병리학이 아닌 데이터입니다.


-1

해시 키는 데이터를 포함하는 별도의 "빈"과 같습니다. 데이터가 모든 빈들 사이에 "균형"으로 고르게 분포 될 것으로 기대 / 희망 할 것이다. 비 병리학 적 데이터의 경우, 각 빈은 대략 동일한 양의 데이터를 갖거나 포함합니다. 데이터가 병리학적인 경우 (wrt 키 해싱 알고리즘), 더 적은 수의 빈으로 "필링"되고 일부 빈은 훨씬 적습니다. 빈을 더 많이 채울 때 조회 시간이 증가하고 (정렬되지 않은 목록을 조회 할 때 효율성이 감소 / 수렴 됨) 비효율적입니다. 키 해싱 알고리즘 만 변경하면 데이터가 "병리학"에서 "비 병리학"으로 또는 그 반대로 변환 될 수 있으므로 해싱 알고리즘의 중요성이 중요합니다.

또한 "병리학 적 대 비 병리학 적"의 구별이 적용될 수있는 많은 다른 알고리즘이 있으며, 기본적으로 "병리학 적"데이터로 인해 알고리즘이 더 나쁜 경우에 수행됩니다 (예 : 개념은 정렬 알고리즘과 함께 사용됨). 통계 개념을 볼 수 있습니다. 또한 동일한 문제의 경우 한 알고리즘에 대해 "병리학 적"인 데이터는 다른 알고리즘에 대해 "병리학 적"이 아닐 수도 있습니다. 기타

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.