일반 클래스 라이브러리 - 버그, 설명, 질문, 사용 기능 및 제안 사항 - 페이지 9

 
피터 코노우 :
나는 두 개의 함수와 하나의 배열을 사용한 솔루션에 추가할 것입니다. 포인터나 연결이 없습니다.

귀하의 솔루션은 좋지 않습니다. 100단어에 대해 100x100x255 배열을 이미 예약했습니다. 2,550,000개의 세포! 그리고 10 0000 단어가 있으면 32비트 시스템의 메모리 제한에 도달합니다. 충돌이 100회 이상 발생하면 어떻게 됩니까? S로 시작하고 P로 시작하는 단어는 몇 개입니까? - 분명히 100개 이상인데, 이것 때문에 지금 저장하지 않는 이유는 무엇입니까?

 
fxsaber :

저것들. 각 작업에 대해 사전(RAM)의 크기와 해시 함수(CPU)의 계산 복잡성 사이의 중간 지점을 찾아야 합니다.

네, 그러죠. 해시 함수에 대한 요구 사항은 아래에서 작성하겠습니다.
 
fxsaber :

이 모든 것이 작성된 후에는 스레드에서 논의된 방식으로 틱을 저장하는 실용적인 작업이 없다고 생각했습니다. 그것들은 시간순으로 정렬되고 단순한 배열에 놓여 있습니다.

내역 주문/거래와 유사합니다. 저장, HistorySelect로 판단하면 시간별로 배열에도 저장됩니다. 그리고 (현재 구현에서는) 티켓이나 ID로 레코드를 검색하는 것에 대해 논의한 것이 없다고 생각합니다.

그리고 모든 것은 명명 된 역사의 경우 무언가를 담는 것이 부적절하기 때문입니다. 연습을 위한 간단한 배열이면 충분합니다.

아마도 그렇습니다.
 
fxsaber :

모자 형태의 발보나 불필요한 존재 없이 간결하게 써달라는 큰 부탁.

이것은 사례 연구입니다. 죄송하지만 아닙니다. 사실, 저는 전투 버전에서 코드가 다음과 같이 작성되었다는 점에 주목합니다. 최대한 간결하고 효율적으로(원하는 대로). 교육 예제에서 코드는 경험이 없는 사용자도 이해할 수 있도록 모든 사람을 위해 최대한 간단하고 명확하게 작성되었습니다.

추신 모자, 알았어, 내가 청소할게.
 
바실리 소콜로프 :

사실, 저는 전투 버전에서 코드가 다음과 같이 작성되었다는 점에 주목합니다. 최대한 간결하고 효율적으로(원하는 대로).


실제로 프로젝트 에서 코드는 "행동 강령"에 따라 작성됩니다.
그리고 fxsaber 와 같은 옵션은 사용되지 않습니다.

 bool Contains( string word)
{
   return words[word[ 0 ]- 'a' ] != NULL ;
}

그 이유는 평범한 것입니다. 편리한 디버깅이 불가능합니다.

 
바실리 소콜로프 :

귀하의 솔루션은 좋지 않습니다. 100단어에 대해 100x100x255 배열을 이미 예약했습니다. 2,550,000 세포! 그리고 10 0000 단어가 있으면 32비트 시스템의 메모리 제한에 도달합니다. 충돌이 100회 이상 발생하면 어떻게 됩니까? S로 시작하고 P로 시작하는 단어는 몇 개입니까? - 분명히 100개 이상인데, 이것 때문에 지금 저장하지 않는 이유는 무엇입니까?


Peter Konow 코드에서 제안된 코드를 연구하기 위해 돌아왔습니다.
죄송합니다. 그러나 이것은 해시 테이블은 말할 것도 없고 일반적으로 해시 주제에 대한 완전한 어둠이자 완전한 오해입니다.
habr에 갈 수 있고 적어도 해시 주제에 대해 알 수 있다면 바퀴에이 관을 만드는 이유는 무엇입니까?

예, 자신의 해시 테이블을 적절하게 구현하는 것은 쉬운 일이 아닙니다.
그러나 제안된 코드에는 이해에 대한 질문조차 없습니다.

 

친구. 스레드가 죽은 것을 봅니다.

토론에 간섭하고 싶지 않아 자발적으로 탈퇴합니다.

아마도 도서관에는 흥미로운 것들이 많이 있을 것입니다.

논의하다.

(내 솔루션은 어쨌든 3.2배 느리기 때문에 더 나쁩니다.)

 
바실리 소콜로프 :

귀하의 솔루션은 좋지 않습니다. 100단어에 대해 100x100x255 배열을 이미 예약했습니다. 2,550,000개의 세포! 그리고 10 0000 단어가 있으면 32비트 시스템의 메모리 제한에 도달합니다. 충돌이 100회 이상 발생하면 어떻게 됩니까? S로 시작하고 P로 시작하는 단어는 몇 개입니까? - 분명히 100개 이상인데, 이것 때문에 지금 저장하지 않는 이유는 무엇입니까?

배열 의 크기는 사전의 크기에 맞게 쉽게 변경할 수 있습니다.

끝없는 옵션은 고려되지 않습니다.

 
세르게이 주블리크 :


Peter Konow 코드에서 제안된 코드를 연구하기 위해 돌아왔습니다.
죄송합니다. 그러나 이것은 해시 테이블은 말할 것도 없고 일반적으로 해시 주제에 대한 완전한 어둠이자 완전한 오해입니다.
habr에 갈 수 있고 적어도 해시 주제에 대해 알 수 있다면 바퀴에이 관을 만드는 이유는 무엇입니까?

예, 자신의 해시 테이블을 적절하게 구현하는 것은 쉬운 일이 아닙니다.
그러나 제안된 코드에는 이해에 대한 질문조차 없습니다.

이 코드가 시작입니다. 아무도 추가 개발을 귀찮게하지 않습니다.
 
바실리 소콜로프 :

귀하의 솔루션은 좋지 않습니다. 100단어에 대해 100x100x255 배열을 이미 예약했습니다. 2,550,000 세포! 그리고 10 0000 단어가 있으면 32비트 시스템의 메모리 제한에 도달합니다. 충돌이 100회 이상 발생하면 어떻게 됩니까? S로 시작하고 P로 시작하는 단어는 몇 개입니까? - 분명히 100개 이상인데, 이것 때문에 지금 저장하지 않는 이유는 무엇입니까?

내 버전에서는 거의 100개 이상의 충돌이 있을 수 없습니다. 같은 문자로 시작하고 같은 수의 문자를 가진 100개 이상의 단어를 생각할 수 있습니까?

("텍스트 1", "텍스트 2", "텍스트 3", "텍스트 4", "텍스트 5" 제외...)