«data-structures» 태그된 질문

알고리즘에 의해 유리하게 사용될 수 있도록 데이터를 저장하는 방법에 대한 질문.

1
고정 된 크기의 기존 데이터 구조가 있습니까? 새로운 요소가 삽입되면 가장 오래된 / 마지막 요소가 나오게됩니까?
새 요소가 삽입되면 가장 오래된 요소와 마지막 요소를 밀어 낼 데이터 구조를 찾고 있습니다. 예를 들어 D구조를 나타냅니다. D유형의 3 개 요소가 포함되어 Number D의 기본 값으로 초기화됩니다 1, 2및 3. D = [ 1 , 2 , 3 ]디=[1,2,삼]D = [1, 2, 3] 경우 Number값을 포함하는이 5삽입되어 D, 3압출되고, …

1
파티션 세분화를 기반으로하는 알고리즘이 로그 선 시간보다 빠르게 실행되는 문제
파티션 세분화 는 유한 객체 세트로 시작하여 세트를 점진적으로 분할하는 기술입니다. DFA 최소화와 같은 일부 문제는 파티션 세분화를 매우 효율적으로 사용하여 해결할 수 있습니다. Wikipedia 페이지에 나열된 것 이외의 파티션 세분화를 사용하여 일반적으로 해결되는 다른 문제는 모르겠습니다. 이러한 모든 문제 중 위키 백과 페이지에는 파티션 세분화를 기반으로하는 알고리즘이 선형 시간으로 …

1
SAT 지역 검색을위한 지원 데이터 구조
WalkSAT 및 GSAT 는 부울 만족도 문제를 해결하기위한 잘 알려진 간단한 로컬 검색 알고리즘입니다. GSAT 알고리즘의 의사 코드는 GSAT 알고리즘 구현-뒤집을 리터럴을 선택하는 방법 이라는 질문에서 복사됩니다 . 아래에 제시되어 있습니다. procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to Max_Tries do S <- instantiation of variables for j:=1 …

2
자체 주문 이진 트리 생성
이진 검색 트리를 사용하고 가장 많이 액세스하는 항목 (우선 순위가 높은 항목)이 트리의 최상위에 있고 루트가 가장 많이 액세스되는 노드가되도록 자체 순서로 변경해야하는 할당이 있습니다. . 교수는 나에게 BST와 노드 구조체를 제공했지만 알고리즘을 내 머리에 넣어 트리를 업데이트하려고 시도하는 것은 혼란 스럽습니다. 삽입이 발생함에 따라 현재 노드의 데이터가 현재 노드보다 …

5
레이블이없는 나무의 효율적인 압축
레이블이없는 뿌리 이진 트리를 고려하십시오. 우리는 할 수 있습니다 압축 하위 트리에 대한 포인터있을 때마다 : 같은 나무를 T티T 와 와 (해석 구조 평등), 우리는 저장 (wlog) 및 모든 포인터 대신 가리키는 포인터와 . 예를 들어 uli의 답변 을 참조하십시오 . T = T ' = T T ' TT′티'T'T=T′티=티'T …

2
최대 흐름 계산 또는 기타 응용 프로그램을 위해 링크 컷 트리가 실제로 사용되고 있습니까?
내가 일반적으로 구현하는 많은 최대 흐름 알고리즘, Dinic의 알고리즘, 푸시 레이블 등은 동적 트리 (링크 컷 트리라고도 함)를 사용하여 점근 적 시간 비용을 개선 할 수 있습니다 . 푸시 레이블 재 지정은 또는 또는 정상적으로 실행되지만 동적 트리O(V2E)O(V2E)O(V^2E)O(V3)O(V3)O(V^3)O(V2E−−√)O(V2E)O(V^2\sqrt{E})O(VElog(V2/E))O(VElog⁡(V2/E))O(VE \log(V^2/E)) Dinic의 알고리즘은 에서 실행되지만 동적 트리O(V2E)O(V2E)O(V^2E)O(VElog(V))O(VElog⁡(V))O(VE\log(V)) 그러나 대부분의 라이브러리에서 max-flow 알고리즘의 …

1
함수형 프로그래밍이 동적 트리를 연구하지 않은 이유는 무엇입니까?
동적 트리는 네트워크 흐름, 동적 그래프, 조합 문제 (Tarjan 및 Werneck의 "실제 동적 트리") 및 최근에 사전 병합 (Adam Karczmarz의 "단순 병합 가능한 사전")과 같은 문제를 해결하는 데 중요한 역할을합니다. 동적 트리 란 1983 년 Sleator & Tarjan의 논문 "동적 트리에 대한 데이터 구조"에 정의 된 정의를 참조합니다. 그 이후로 …

1
어떤 클래스의 데이터 구조를 영구적으로 만들 수 있습니까?
영구 데이터 구조 는 변경할 수없는 데이터 구조입니다. 이들에 대한 작업은 데이터 구조의 새로운 "복사"를 반환하지만 작업에 의해 변경됩니다. 이전 데이터 구조는 변경되지 않습니다. 효율성은 일반적으로 일부 기본 데이터를 공유하고 데이터 구조의 전체 복사를 피함으로써 달성됩니다. 질문 : 동일하거나 매우 유사한 복잡성을 유지하면서 지속적으로 만들 수있는 데이터 구조 클래스에 대한 …

12
문자열 간의 차이점을 빠르게 찾을 수있는 데이터 구조 또는 알고리즘
길이가 인 100,000 개의 문자열 배열이 kkk있습니다. 각 문자열을 다른 모든 문자열과 비교하여 두 문자열이 1 문자 씩 다른지 확인하고 싶습니다. 지금은 각 문자열을 배열에 추가함에 따라 배열에 이미있는 모든 문자열에 대해 확인하고 있으며 시간 복잡도는 n(n−1)2k엔(엔−1)2케이\frac{n(n-1)}{2} k. 내가 이미하고있는 것보다 문자열을 서로 빠르게 비교할 수있는 데이터 구조 또는 알고리즘이 …

1
Ukkonen 알고리즘의 런타임은 알파벳 크기에 어떻게 의존합니까?
나는 Ukkonen 알고리즘의 점근 적 실행 시간에 대한 문제에 관심이 있습니다. 아마도 선형 (?) 시간에 접미사 트리 를 구성하는 가장 인기있는 알고리즘 일 것 입니다. Dan Gusfield (섹션 6.5.1)의 "문자열, 나무 및 시퀀스에 대한 알고리즘"책에서 인용 한 내용은 다음과 같습니다. "... Aho-Corasick, Weiner, Ukkonen 및 McCreight 알고리즘은 모두 공간이 필요하거나 …


1
마지막 N 숫자의 가중치 합계
스트림에서 숫자를 받고 있다고 가정합니다. 각 숫자를받은 후에는 마지막 숫자 의 가중치 합계를 계산해야합니다. 여기서 가중치는 항상 동일하지만 임의적입니다.NNN 계산에 도움이되는 데이터 구조를 유지할 수 있다면 얼마나 효율적으로 할 수 있습니까? 우리는 보다 더 잘 할 수 있습니까 ? 즉 숫자를받을 때마다 합계를 다시 계산할 수 있습니까?Θ(N)Θ(N)\Theta(N) 예를 들어, 가중치가 …

1
배열 초기화에 저장
최근에 초기화 할 필요가없는 배열을 가질 수 있다는 것을 읽었습니다. 즉, 각 구성원을 기본값으로 설정하려고 할 때 시간을 소비하지 않고도 배열을 사용할 수 있습니다. 즉, 배열을 초기화하지 않고 기본값으로 초기화 된 것처럼 배열을 사용할 수 있습니다. (죄송합니다, 나는 이것을 어디서 읽었는지 기억하지 못합니다). 예를 들어 왜 이것이 놀라운 지에 대해 …


2
수직 가시성 문제에 대한 효율적인 알고리즘
한 가지 문제에 대해 생각하는 동안 다음 작업을 해결하는 효율적인 알고리즘을 만들어야한다는 것을 깨달았습니다. 문제 : 우리는 측면이 축과 평행 한 측면 의 2 차원 사각형 상자가 제공 됩니다. 상단을 통해 살펴볼 수 있습니다. 그러나 수평 세그먼트 도 있습니다. 각 세그먼트에는 정수 좌표 ( )와 좌표 ( )가 있으며 점 …

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