2014-04-15 3 views
-1

이 문제를 해결하는 방법을 이해하는 샘플 코드 (목표 - C)가 필요합니다 : (1) 문자열 텍스트를 나타내는 :자주 단어 목표 - C

두 개의 매개 변수를 사용하는 함수를 쓰기를 문서 및 (2) 반환 할 항목 수를 제공하는 정수. 가장 자주 발생하는 단어 인 단어 빈도 순으로 정렬 된 문자열 목록을 반환하도록 함수를 구현합니다. 단어가 어떻게 분리되는지를 판단하기 위해 최선의 판단을 사용하십시오. 솔루션은 O (n) 시간에 실행해야합니다. 여기서 n은 문서의 문자 수입니다. 프로덕션/상업용 시스템 에서처럼이 기능을 구현하십시오. 표준 데이터 구조를 사용할 수 있습니다.

+1

이것은 이전 질문 [파일 (문자열) Objective-C에서 가장 자주 단어 인쇄] (http://stackoverflow.com/questions/23076347/printing-the-most-frequent-words)와 동일하게 보입니다. -in-a-filestring-objective-c) (단지 코드를 더 이상 제공하지 않는다). - 당신이 만족스러운 답을 얻지 못한다면, 질문을 반복하지 말고 * 향상 시키십시오. –

답변

0

나는 당신에게 어떤 객관적인 -c 코드도주지 않을 것입니다. 그것은 당신의 작업을 의미 할 것입니다. 성능 결정에 대 algorithmics 및 메모리 (중요한 것입니다 : : 메모리 나 CPU의 클럭)

내가 당신에게 당신이 구현할 수있는 몇 가지 단서를 줄 것이다 (대한 코드를 작성하지 않습니다

귀하의 질문은이 개 기술을 포함한다 너). 이 기술 문서를 구문 분석하는 경우 O (N), 메모리의 부하가 (당신이 아래에있을 것이다 -

  • 버킷 모든 단어의 해시에 따라 : 가 당신이 설명하는 문제는 두 가지 방법으로 해결할 수 있습니다

    당신은 1000 단어의 단어를 쓰고, "and", "this", "the"와 같은 "common"단어는 무시할 필요가 있습니다.) O (n) + O (m log m) 여기서 n은 텍스트 문서의 단어 수이고, m은 문서의 다른 단어 수입니다 (m log m은 사전 트리). n >>> m 이후, 여전히 O (n)이라고 말할 수 있습니다.

내가 무엇을 할 지 알려주십시오.