SlideShare uma empresa Scribd logo
1 de 48
[ The Art of Computer Programming ] 2.2.6 배열과 직교 목록연습문제 풀이 아.꿈.사 Study 2011. 04. 30 김한솔 itsfitsol@gmail.com
풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25]
풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25] 커누스 할아버지가중요 하다고 한 문제
풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25] 재미 있을것 같아서 건드렸다가  후회 한 문제
2. [21] 공식 (5)와 (6)은 1 ≤ r ≤ k 에 대해 0 ≤ I r ≤ d r이라는  가정하에서 유도한 것이다. l r과 u r이 해당 차원의 하계, 상계라고 할 때, l r≤ I r ≤ u r 인 경우에 적용되는 일반적인 공식을 제시하라.
공식(5), (6) 을 이용해서 I r 위치에서하계인 l r위치를  빼주면 되지 않을까?
공식(5), (6) 을 이용해서 I r 위치에서하계인 l r위치를  빼주면 되지 않을까? 즉, 공식(5), (6) 에서 LOC(A[I1, I2, … , Ik])- LOC(A[l1, l2, … , lk]) … LOC(A[0, 0, … , 0]) LOC(A[l1, l2, … , lk]) LOC(A[I1, I2, … , Ik]) LOC(A[u1, u2, … , uk]) …
2. [21] 공식 (5)와 (6)은 1 ≤ r ≤ k에 대해 0 ≤ I r ≤ d r 이라는  가정하에서 유도한 것이다. l r과 u r이 해당 차원의 하계, 상계라고 할 때, l r≤ I r ≤ u r인 경우에 적용되는 일반적인 공식을 제시하라. LOC(A[I1, I2, … , Ik]) = LOC(A[0, 0, … , 0]) + - LOC(A[l1, l2, … , lk]) = LOC(A[0, 0, … , 0]) + LOC(A[I1, I2, … , Ik]) - LOC(A[l1, l2, … , lk])  =                   -   ∴  LOC(A[I1, I2, … , Ik]) = LOC(A[l1, l2, … , lk]) +                   -   여기서,
6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까?
6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까? 풀이) (a) LOC(A[I, J, K]) = LOC(A[0, 0, 0]) + (b) LOC(B[I, J, K]) = LOC(B[0, 0, 0])
6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까? GG 우리..함께해요…!! 풀이) (a) LOC(A[I, J, K]) = LOC(A[0, 0, 0]) + (b) LOC(A[I, J, K]) = LOC(A[0, 0, 0])
9. [22] 그림 13에 나온 것과 비슷하지만 그보다는 훨씬 큰 어떤 표가 있으며, 그것의 모든 링크들이 그 그림에 나온 것과 같은 방향으로 설정되어 있다고 하자. (즉, 모든 노드 들과 링크들에서 LINK(X) < X 이다.) 여러 링크 필드들을  훑으면서 21세에서 23세 사이의 파란 눈 금발 여성을 모두 찾는 알고리즘을 설계하라. 단, 목록 FEMALE, A21, A22, A23, BLOND, BLUE 각각을 최대 한 번만 훑어서 모든 답을 찾아야 한다.
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G1. P1←FEMALE(HEAD)      P2←A21(HEAD)      P3←A22(HEAD)      P4←A23(HEAD)      P5←BLUE(HEAD)      P6←BLOND(HEAD) goto G2 PERSON[4] P3 P6 PERSON[3] PERSON[2] P5 PERSON[1] P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) 	P5←EYES(P5)      if P5 < P6 then goto G5      else if P5 == P6 then goto G3     PERSON[4] P3 P6 PERSON[3] PERSON[2] P5 PERSON[1] P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G5. P6←HAIR(P6)      if P6 == ∧ then 	return FALSE      else goto G2 PERSON[4] P3 PERSON[3] P6 PERSON[2] P5 PERSON[1] P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) 	P5←EYES(P5)      if P5 < P6 then goto G5      else if P5 == P6 then goto G3     PERSON[4] P3 PERSON[3] P6 PERSON[2] P5 PERSON[1] P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G5. P6←HAIR(P6)      if P6 == ∧ then 	return FALSE      else goto G2 PERSON[4] P3 PERSON[3] PERSON[2] P5 PERSON[1] P6 P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) P5←EYES(P5)      if P5 < P6 then goto G5      else if P5 == P6 then goto G3 PERSON[4] P3 PERSON[3] PERSON[2] PERSON[1] P5 P6 P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 G3. while ( P4 > P6 ) 	P4←A23(P4)      while ( P3 > P6 ) P3←A22(P3)      while ( P2 > P6 ) 	P2←A21(P2)      if P4 < P6 && P3 < P6      && P2 < P6 then goto G5      else  goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] P3 PERSON[1] P5 P6 P4 =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 G3. while ( P4 > P6 ) 	P4←A23(P4)      while ( P3 > P6 ) P3←A22(P3)      while ( P2 > P6 ) 	P2←A21(P2)      if P4 < P6 && P3 < P6      && P2 < P6 then goto G5      else  goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] PERSON[1] P5 P6     P3   P4     =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 G3. while ( P4 > P6 ) 	P4←A23(P4)      while ( P3 > P6 ) 	P3←A22(P3)      while ( P2 > P6 ) P2←A21(P2)      if P4 < P6 && P3 < P6      && P2 < P6 then goto G5      else  goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] PERSON[1] P2 P5 P6     P3   P4     =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1)      if P1 == P6 then 	print *P6 	return TRUE PERSON[4] P1 PERSON[3] PERSON[2] PERSON[1] P2 P5 P6     P3   P4     =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1)      if P1 == P6 then 	print *P6 	return TRUE PERSON[4] PERSON[3] PERSON[2] P1 PERSON[1] P2 P5 P6     P3   P4     =NULL
BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1)      if P1 == P6 then print *P6 	return TRUE PERSON[4] PERSON[3] PERSON[2] PERSON[1] P2 P5 P6 P1     P3   P4     =NULL
결국 P6 기준으로 모든 포인터가 같을 때값을 반환 이 알고리즘은 최적화 방법은 아니다. 모든 노드를 선형 탐색을 하기 때문에…? 최적화 방법은 TAOCP 3권 6.5절 2차키에 의한 조회 참고.
12. [20] 단계 S7의 시작에서 VAL(Q0), VAL(P0), VAL(P1) 값들을 (13)에 쓰인 a, b, c 로 표현하라.
12. [20] 단계 S7의 시작에서 VAL(Q0), VAL(P0), VAL(P1) 값들을 (13)에 쓰인 a, b, c 로 표현하라. VAL(Q0) = c VAL(P0) = b/a VAL(P1) = d 알고리즘 비교해보시면 간단하게 알 수 있습니다.
13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까?
13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까? 순환 목록 사용 이유 “경계값” (Tail Node) 를 설정. Tail Node 의 링크(리스트의 처음) 시작. => 편리하게 Tail Node 검사 가능 Ex) 그림 14 에서 Tail Node 의 row,col필드의 값은 모두 -1 알고리즘S 에서 행, 열 리스트의 마지막 검사는  ROW(I) < 0 또는 COL(J) < 0
13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까? 알고리즘S 재작성 가능여부 단방향 리스트를 사용할 수는 있지만 알고리즘이 더욱 복잡해지며 메모리를 절약할 수도 없다. 비효율적
15. [29] 알고리즘 S를 위한 MIXAL 프로그램을 작성하라. VAL 필드는 부동소수점이고, 그 필드들의 연산을 위해 MIX의 부동소수점 산술 연산자 FADD, FSUB, FMUL, FDIV를 사용할 수 있다고 가정할 것. 단순함을 위해, 피연산자들의 덧셈 또는 뺄셈에 의해 대부분의 유효숫자들이 취소된다면 FADD나 FSUB가 0을 돌려준다고 가정한다. 즉, 단계 S7의 “VAL(P1)=0” 판정을 그대로 사용해도 안전하다고 가정하는 것이다. 부동소수점 연산들은 rA만 사용한다(rX는 사용하지 않는다).
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라.
질문이 너무 길다. 무슨 소리지………?
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. 이것은 희소 배열이다.
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]에 처음 접근하면  0으로 초기화하고
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되,모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. 시간은 상관 X
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고,배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]미리 초기화 X 쓰레기 일수도 있다.
24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]값이 유효할 수 있는 방법을 설명하시오.
임의의 희소 배열 A알수 없는 값 같은 크기의 검증용 배열 V알수없는 값 사용된 장소들의 목록L알수없는 값 목록 L 의 요소 개수n	0 임의의 값 k에 대해 A[k]접근시 if 0 ≤ V[k] ≤ n && L[V[k]] == k then 	return TRUE else V[k] ← n L[n]← k A[k]← 0 n ← n+1 return FALSE
 k1 …                                        … A …                                        … V … L n             0  임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then 	return TRUE else V[k1] ← n L[n]← k1 A[k1] ← 0 n ← n+1 return FALSE
 k1 …                                        … A 0 …                                        … V 0 … L k1 n             1 임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then 	return TRUE else V[k1] ← n L[n]← k1 A[k1] ← 0 n ← n+1 return FALSE
 k1  k2 …                                        … A 0 …                                        … V 0 … L k1 n             1  임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n&& L[V[k2]] == k2then 	return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
 k1  k2 …                                        … A 0 0 …                                        … V 0 1 … L k1 k2 n             2 임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n && L[V[k2]] == k2then 	return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
k1  k2 …                                        … A 0 0 …                                        … V 0 1 … L k1 k2 n             2  임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n&& L[V[k1]] == k1then 	return TRUE else V[k1] ← n L[n]← k2 A[k1] ← 0 n ← n+1 return FALSE
k1  k2 …                                        … A 0 0 …                                        … V 0 1 … L k1 k2 n             2  임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then return TRUE else V[k1] ← n L[n]← k2 A[k1] ← 0 n ← n+1 return FALSE
 k1  k2 …                                        … A 0 0 …                                        … V 0 1 … L k1 k2 n             2  임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n&& L[V[k2]] == k2then 	return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
 k1  k2 …                                        … A 0 0 …                                        … V 0 1 … L k1 k2 n             2  임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n && L[V[k2]] == k2then return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
끝

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

TAOCP 2.2.6

  • 1. [ The Art of Computer Programming ] 2.2.6 배열과 직교 목록연습문제 풀이 아.꿈.사 Study 2011. 04. 30 김한솔 itsfitsol@gmail.com
  • 2. 풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25]
  • 3. 풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25] 커누스 할아버지가중요 하다고 한 문제
  • 4. 풀이할 연습문제 2. [21] 6. [M24] 9. [22] 12. [20] 13. [22] 15. [29] 24. [25] 재미 있을것 같아서 건드렸다가 후회 한 문제
  • 5. 2. [21] 공식 (5)와 (6)은 1 ≤ r ≤ k 에 대해 0 ≤ I r ≤ d r이라는 가정하에서 유도한 것이다. l r과 u r이 해당 차원의 하계, 상계라고 할 때, l r≤ I r ≤ u r 인 경우에 적용되는 일반적인 공식을 제시하라.
  • 6. 공식(5), (6) 을 이용해서 I r 위치에서하계인 l r위치를 빼주면 되지 않을까?
  • 7. 공식(5), (6) 을 이용해서 I r 위치에서하계인 l r위치를 빼주면 되지 않을까? 즉, 공식(5), (6) 에서 LOC(A[I1, I2, … , Ik])- LOC(A[l1, l2, … , lk]) … LOC(A[0, 0, … , 0]) LOC(A[l1, l2, … , lk]) LOC(A[I1, I2, … , Ik]) LOC(A[u1, u2, … , uk]) …
  • 8. 2. [21] 공식 (5)와 (6)은 1 ≤ r ≤ k에 대해 0 ≤ I r ≤ d r 이라는 가정하에서 유도한 것이다. l r과 u r이 해당 차원의 하계, 상계라고 할 때, l r≤ I r ≤ u r인 경우에 적용되는 일반적인 공식을 제시하라. LOC(A[I1, I2, … , Ik]) = LOC(A[0, 0, … , 0]) + - LOC(A[l1, l2, … , lk]) = LOC(A[0, 0, … , 0]) + LOC(A[I1, I2, … , Ik]) - LOC(A[l1, l2, … , lk]) = - ∴ LOC(A[I1, I2, … , Ik]) = LOC(A[l1, l2, … , lk]) + - 여기서,
  • 9. 6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까?
  • 10. 6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까? 풀이) (a) LOC(A[I, J, K]) = LOC(A[0, 0, 0]) + (b) LOC(B[I, J, K]) = LOC(B[0, 0, 0])
  • 11. 6. [M24] “4면체 배열” A[i, j, k]와 B[i, j, k]가 있다. A의 경우 에는 0 ≤ k ≤ j ≤ i≤ n 이고 B 경우에는 0 ≤i≤ j ≤ k ≤ n 이다. 두 배열 모두 색인의 사전식 순서에 따라 연속적인 메모리 장소에 저장되어 있다고 가정한다. 이 때, 어떠한 함수 f1, f2, f3에 대해 LOC(A[i, j, k])=a0+f1(I)+f2(J)+f3(K)임을 보여라. LOC(B[i, j, k]) 도 그와 비슷한 방식으로 표현할 수 있을까? GG 우리..함께해요…!! 풀이) (a) LOC(A[I, J, K]) = LOC(A[0, 0, 0]) + (b) LOC(A[I, J, K]) = LOC(A[0, 0, 0])
  • 12. 9. [22] 그림 13에 나온 것과 비슷하지만 그보다는 훨씬 큰 어떤 표가 있으며, 그것의 모든 링크들이 그 그림에 나온 것과 같은 방향으로 설정되어 있다고 하자. (즉, 모든 노드 들과 링크들에서 LINK(X) < X 이다.) 여러 링크 필드들을 훑으면서 21세에서 23세 사이의 파란 눈 금발 여성을 모두 찾는 알고리즘을 설계하라. 단, 목록 FEMALE, A21, A22, A23, BLOND, BLUE 각각을 최대 한 번만 훑어서 모든 답을 찾아야 한다.
  • 13. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G1. P1←FEMALE(HEAD) P2←A21(HEAD) P3←A22(HEAD) P4←A23(HEAD) P5←BLUE(HEAD) P6←BLOND(HEAD) goto G2 PERSON[4] P3 P6 PERSON[3] PERSON[2] P5 PERSON[1] P4 =NULL
  • 14. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) P5←EYES(P5) if P5 < P6 then goto G5 else if P5 == P6 then goto G3 PERSON[4] P3 P6 PERSON[3] PERSON[2] P5 PERSON[1] P4 =NULL
  • 15. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G5. P6←HAIR(P6) if P6 == ∧ then return FALSE else goto G2 PERSON[4] P3 PERSON[3] P6 PERSON[2] P5 PERSON[1] P4 =NULL
  • 16. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) P5←EYES(P5) if P5 < P6 then goto G5 else if P5 == P6 then goto G3 PERSON[4] P3 PERSON[3] P6 PERSON[2] P5 PERSON[1] P4 =NULL
  • 17. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G5. P6←HAIR(P6) if P6 == ∧ then return FALSE else goto G2 PERSON[4] P3 PERSON[3] PERSON[2] P5 PERSON[1] P6 P4 =NULL
  • 18. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 PERSON[5] G2. while ( P5 >P6 ) P5←EYES(P5) if P5 < P6 then goto G5 else if P5 == P6 then goto G3 PERSON[4] P3 PERSON[3] PERSON[2] PERSON[1] P5 P6 P4 =NULL
  • 19. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 G3. while ( P4 > P6 ) P4←A23(P4) while ( P3 > P6 ) P3←A22(P3) while ( P2 > P6 ) P2←A21(P2) if P4 < P6 && P3 < P6 && P2 < P6 then goto G5 else goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] P3 PERSON[1] P5 P6 P4 =NULL
  • 20. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 P2 G3. while ( P4 > P6 ) P4←A23(P4) while ( P3 > P6 ) P3←A22(P3) while ( P2 > P6 ) P2←A21(P2) if P4 < P6 && P3 < P6 && P2 < P6 then goto G5 else goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] PERSON[1] P5 P6 P3 P4 =NULL
  • 21. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] P1 G3. while ( P4 > P6 ) P4←A23(P4) while ( P3 > P6 ) P3←A22(P3) while ( P2 > P6 ) P2←A21(P2) if P4 < P6 && P3 < P6 && P2 < P6 then goto G5 else goto G4 PERSON[5] PERSON[4] PERSON[3] PERSON[2] PERSON[1] P2 P5 P6 P3 P4 =NULL
  • 22. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1) if P1 == P6 then print *P6 return TRUE PERSON[4] P1 PERSON[3] PERSON[2] PERSON[1] P2 P5 P6 P3 P4 =NULL
  • 23. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1) if P1 == P6 then print *P6 return TRUE PERSON[4] PERSON[3] PERSON[2] P1 PERSON[1] P2 P5 P6 P3 P4 =NULL
  • 24. BROWN FEMALE BLOND GREEN HAZEL MALE DARK BLUE RED A21 A24 A23 A28 A22 PERSON[6] PERSON[5] G4. while ( P1 > P6 ) P1←SEX(P1) if P1 == P6 then print *P6 return TRUE PERSON[4] PERSON[3] PERSON[2] PERSON[1] P2 P5 P6 P1 P3 P4 =NULL
  • 25. 결국 P6 기준으로 모든 포인터가 같을 때값을 반환 이 알고리즘은 최적화 방법은 아니다. 모든 노드를 선형 탐색을 하기 때문에…? 최적화 방법은 TAOCP 3권 6.5절 2차키에 의한 조회 참고.
  • 26. 12. [20] 단계 S7의 시작에서 VAL(Q0), VAL(P0), VAL(P1) 값들을 (13)에 쓰인 a, b, c 로 표현하라.
  • 27. 12. [20] 단계 S7의 시작에서 VAL(Q0), VAL(P0), VAL(P1) 값들을 (13)에 쓰인 a, b, c 로 표현하라. VAL(Q0) = c VAL(P0) = b/a VAL(P1) = d 알고리즘 비교해보시면 간단하게 알 수 있습니다.
  • 28. 13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까?
  • 29. 13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까? 순환 목록 사용 이유 “경계값” (Tail Node) 를 설정. Tail Node 의 링크(리스트의 처음) 시작. => 편리하게 Tail Node 검사 가능 Ex) 그림 14 에서 Tail Node 의 row,col필드의 값은 모두 -1 알고리즘S 에서 행, 열 리스트의 마지막 검사는 ROW(I) < 0 또는 COL(J) < 0
  • 30. 13. [22] 그림 14에서 직선적인 선형 목록 대신 순환 목록을 사용한 이유는 무엇일까? 순환 연결을 사용하지 않도록 알고리즘 S를 재작성하는 게 가능할까? 알고리즘S 재작성 가능여부 단방향 리스트를 사용할 수는 있지만 알고리즘이 더욱 복잡해지며 메모리를 절약할 수도 없다. 비효율적
  • 31. 15. [29] 알고리즘 S를 위한 MIXAL 프로그램을 작성하라. VAL 필드는 부동소수점이고, 그 필드들의 연산을 위해 MIX의 부동소수점 산술 연산자 FADD, FSUB, FMUL, FDIV를 사용할 수 있다고 가정할 것. 단순함을 위해, 피연산자들의 덧셈 또는 뺄셈에 의해 대부분의 유효숫자들이 취소된다면 FADD나 FSUB가 0을 돌려준다고 가정한다. 즉, 단계 S7의 “VAL(P1)=0” 판정을 그대로 사용해도 안전하다고 가정하는 것이다. 부동소수점 연산들은 rA만 사용한다(rX는 사용하지 않는다).
  • 32. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라.
  • 33. 질문이 너무 길다. 무슨 소리지………?
  • 34. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. 이것은 희소 배열이다.
  • 35. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]에 처음 접근하면 0으로 초기화하고
  • 36. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되,모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. 시간은 상관 X
  • 37. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고,배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]미리 초기화 X 쓰레기 일수도 있다.
  • 38. 24. [25] (희소 배열 요령.) 커다란 배열을 임의 접근으로 사용해야 하지만, 그 행렬의 아주 많은 성분들을 실제로 참조하지 않을 것이라고 가정하자. 임의의 성분 A[k]에 처음 접근했을 때 그것을 0으로 설정하되, 모든 장소들을 미리 0으로 초기화 하는데 시간을 소비하지는 않고자 한다. 임의의 k가 주어졌을 때, 실제 초기 메모리 내용들에 대해 어떠한 것도 가정하지 않고, 배열 접근 당 오직 고정된 적은 수의 추가적인 연산들만 사용해서 해당 성분 A[k]를 신뢰성 있게 읽고 쓰는 것이 어떻게 가능할지 설명하라. A[k]값이 유효할 수 있는 방법을 설명하시오.
  • 39. 임의의 희소 배열 A알수 없는 값 같은 크기의 검증용 배열 V알수없는 값 사용된 장소들의 목록L알수없는 값 목록 L 의 요소 개수n 0 임의의 값 k에 대해 A[k]접근시 if 0 ≤ V[k] ≤ n && L[V[k]] == k then return TRUE else V[k] ← n L[n]← k A[k]← 0 n ← n+1 return FALSE
  • 40. k1 … … A … … V … L n 0 임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then return TRUE else V[k1] ← n L[n]← k1 A[k1] ← 0 n ← n+1 return FALSE
  • 41. k1 … … A 0 … … V 0 … L k1 n 1 임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then return TRUE else V[k1] ← n L[n]← k1 A[k1] ← 0 n ← n+1 return FALSE
  • 42. k1 k2 … … A 0 … … V 0 … L k1 n 1 임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n&& L[V[k2]] == k2then return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
  • 43. k1 k2 … … A 0 0 … … V 0 1 … L k1 k2 n 2 임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n && L[V[k2]] == k2then return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
  • 44. k1 k2 … … A 0 0 … … V 0 1 … L k1 k2 n 2 임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n&& L[V[k1]] == k1then return TRUE else V[k1] ← n L[n]← k2 A[k1] ← 0 n ← n+1 return FALSE
  • 45. k1 k2 … … A 0 0 … … V 0 1 … L k1 k2 n 2 임의의 값 k1에 대해 A[k1]접근시 if 0 ≤ V[k1] ≤ n && L[V[k1]] == k1then return TRUE else V[k1] ← n L[n]← k2 A[k1] ← 0 n ← n+1 return FALSE
  • 46. k1 k2 … … A 0 0 … … V 0 1 … L k1 k2 n 2 임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n&& L[V[k2]] == k2then return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
  • 47. k1 k2 … … A 0 0 … … V 0 1 … L k1 k2 n 2 임의의 값 k2에 대해 A[k2]접근시 if 0 ≤ V[k2] ≤ n && L[V[k2]] == k2then return TRUE else V[k2] ← n L[n]← k2 A[k2] ← 0 n ← n+1 return FALSE
  • 48.