5. 화일의정렬 / 합병 DBLAB, SNU v 정렬 / 합병의개요 u 정렬 (sorting) 내부정렬 (internal sorting) 데이타가적어서메인메모리내에모두저장시켜정렬가능할때 레코드판독, 기록에걸리는시간이문제되지않는다. 외부정렬 (external sortin
|
|
- 원빈 육
- 5 years ago
- Views:
Transcription
1 5. 의정렬 / 합병 v 정렬 / 합병의개요 u 정렬 (sorting) 내부정렬 (internal sorting) 데이타가적어서메인메모리내에모두저장시켜정렬가능할때 레코드판독, 기록에걸리는시간이문제되지않는다. 외부정렬 (external sorting) 데이타가많아서메인메모리의용량을초과하여보조저장장치에저장된을정렬할때 레코드판독, 기록에걸리는시간이중요 정렬 / 합병 (sort/merge) 런 (run) : 하나의을여러개로분할하여내부정렬기법으로정렬시킨서브 (subfile) 런들을합병 (merge) 하여원하는하나의정렬된로만든다.
2 시작논리서브 에서처음키 를 합병의기본서브 에서논리처음키 을 읽어라읽어라 서브 의 EOF 에도착했는가? YES 서브 의 EOF 에도착했는가? YES 끝 NO YES 서브 의 EOF 에도착했는가? 서브 의레코드를정렬된에출력하라 서브 의레코드를정렬된수록하라 YES 키 < 키 NO 서브 에서다음키 를읽어라 서브 에서다음키 을읽어라 서브 의레코드를합병에수록하라 서브 의레코드를합병에수록하라 서브 에서다음키 을읽어라 서브 에서다음키 를읽어라 정렬 / 합병단계 정렬단계 (sort phase) 정렬할의레코드들을지정된길이의서브로분할해서정렬하여런 (run) 을만들어입력로분배하는단계. 정렬 합병단계 (merge phase) 정렬된런들을합병해서보다큰런으로만들고, 이것들을다시입력로재분배하여합병하는방식으로모든레코드들이하나의런에포함되도록만드는단계. 합병
3 정렬단계 u 런생성방법 내부정렬 (internal sort) 대체선택 (replacement selection) 자연선택 (natural selection) u 입력 ( 레코드키값 ) 의예 () 내부정렬 (internal sort) u u 런생성방법. 을 n레코드씩분할. 분할된레코드들을내부정렬기법으로정렬런생성결과 마지막런을제외하고모두길이가동일 n=5인경우 런 : 런 : 런 : 런 : 런 5 : 런 6 : 런 7 : 런 8 : 런 9 : 5 8 런 0 : 런 : 85 6
4 () 대체선택 (replacement selection) u 런생성방법. 입력에서버퍼에 m개의레코드를판독하고첫번째런생성을시작. 버퍼로부터키값이가장작은레코드를선정해서출력. 입력에서다음레코드를판독해출력된레코드와대체 if ( 입력레코드의키값 < 출력된레코드의키값 ) then 레코드에 동결 (frozen) 로표시 동결된레코드는단계 의선정작업대상에서제외 동결되지않은레코드가있으면단계 부터실행. 동결된레코드들을모두해제하고단계 로돌아가새로운런을생성 u 특징 내부정렬과달리입력의일부정렬된레코드들의순서를이용 내부정렬을이용한경우보다런의길이가길다. 런의평균예상길이 : m 7 () 대체선택 (replacement selection) u 런생성결과 (m=5) 런 : 런 : 런 : 런 : 런 5 : 런 6 :
5 대체선택알고리즘 replacementselection() // 대체선택알고리즘 // m : 버퍼에들어가는레코드수 // Buffer[] : 버퍼-레코드배열 // written[] : 해당버퍼레코드가출력되었는지를나타내는플래그배열 // frozen[] : 해당버퍼레코드가동결되었는지를나타내는플래그배열 // lastkey : 마지막으로런에출력된레코드키값 // input : 입력 for (i 0; i < m; i++) written[i] true; i 0; readfrom(buffer[i], input); written[i] false; i i + ; } while (i < m &&!end-of-file(input) ); // 런들을생성 while (!end-of-file(input)) { // 새로운런을생성 for (i 0; i < m; i++) // 동결플래그초기화 if (!written[i]) frozen[i] false; 9 대체선택알고리즘 while (any unfrozen records remain) { // 레코드하나를런에출력 select smallest unfrozen record Buffer[s]; appendtorun(buffer[s]); lastkey Buffer[s].key; written[s] true; frozen[s] true; if (!end-of-file(input)) { readfrom(buffer[s], input); written[s] false; if (Buffer[s].key > lastkey) frozen[s] false; } } } // 버퍼에있는나머지레코드들을출력 appendtorun(unwritten Buffer[] records in ascending key order); end replacementselection() 0
6 () 자연선택 (natural selection) u 특징 동결된레코드들을버퍼에유지하지않고보조저장장치의저장소 (reservoir) 에별도저장 하나의런생성작업은저장소가꽉차거나입력의끝에도달할때까지계속 런을길게만들어런수를줄임으로써합병비용을줄임 u 런생성결과 ( 버퍼 버퍼크기 (m)=5, 저장소크기 (m) =5 =5) 런 : 런 : 런 : 런 : 런 5 : 자연선택알고리즘 naturalselection() // 자연선택알고리즘 // m, m' : 버퍼와저장소의크기 ( 레코드수 ) // Buffer[] : 버퍼-레코드배열 // written[] : 해당버퍼레코드가출력되었는지를나타내는플래그배열 // reservoir-count : 저장소에저장된레코드수 // spacefull : 저장소의만원을나타내는플래그 // lastkey : 마지막으로출력된레코드키값 // input : 입력 for ( i 0; i < m; i++) written[i] true; i 0; readfrom(buffer[i], input); written[i] false; i i + ; } while (i < m && (!end-of-file(input) ); reservoir-count 0; // 로부터레코드를읽어런에출력 // 런하나를생성 spacefull false; // 레코드하나를출력 select smallest unwritten record Buffer[s]; appendtorun(buffer[s]); lastkey Buffer[s].key; written[s] true;
7 자연선택알고리즘 if (!end-of-file(input)) { readfrom(buffer[s], input); if (Buffer[s].key lastkey) { written[s] false; } else { move Buffer[s] to reservoir; reservoir-count reservoir-count + ; if (reservoir-count = m') spacefull true; } } } while (written[s] &&!spacefull &&!end-of-file(input)); } while (!end-of-file(input) &&!spacefull); appendtorun(unwritten Buffer[] records in ascending key order); settrue(corresponding elements of written[]); // 다음런을생성하기위해버퍼정리 if (reservoir-count >0) { res-records min(reservoir-count, m); for (i 0; i < res-records; i++) { moveto(a record from reservoir, Buffer[i]); written[i] false; reservoir-count reservoir-count - ; } } if (Buffer[] not full &&!end-of-file(input)) { fillbuffer(with records from input); setfalse(corresponding elements of written[]); } } while (unwritten records exist in Buffer[]); end naturalselection() 런생성방법의비교 u 내부정렬 마지막런을제외하고모든런들의길이가같음 런의길이를예측할수있으므로합병알고리즘이간단 u 대체선택 내부정렬보다평균적으로훨씬긴런을생성 런의길이가길수록합병비용이적음 런의길이가일정치않아정렬 / 합병알고리즘이복잡 u 자연선택 앞의두방법보다더긴런을생성할수있음 저장소로의입출력이문제가됨 긴런생성에따른효율화가저장소전송비용보다이익이될수도있음
8 정렬 / 합병기법의차이 u 정렬 / 합병기법의차별화요소 적용하는내부정렬방식 내부정렬을위해할당된메인메모리의크기 정렬된런들의보조저장장치에서의저장분포 정렬 / 합병단계에서동시에처리할수있는런의수 u 이런요소에따라런의수와합병의패스 (pass) 수가결정 패스 (pass): 최종생성을위한반복적실행과정 u 정렬 / 합병기법의성능비교 정렬단계에서만들어지는런의수와합병의패스수비교 보조저장장치에대한상대적참조빈도수 (reference frequency) 전체레코드집합에대해수행되어야할정렬 / 합병의패스수비교 레코드들의판독 / 기록횟수 가능한런의길이를길게만들면합병해야될런의수는최소화 동시에합병할수있는런의수를늘리면합병의패스수는감소 입력런을보조저장장치에분산저장하면합병에필요한입출력뿐만아니라부수적인입출력연산도동반 5 합병단계 u 합병수행방법 m-원합병 (m-way merge) 균형합병 (balanced merge) 다단계합병 (polyphase merge) 계단식합병 (cascade merge) 6
9 v m-원합병 (m-way merge) u 특징 m개의입력을동시에처리하는합병 m개의입력로부터하나의출력을생성 총 m+개의을사용 입력수를합병의원수 (degree) 라함 많은입출력 : 한패스에합병이끝나지않으면런들을입력로다시분배하기위해복사와이동을해야함 이상적정렬 / 합병 : m개의런에 m개의입력을사용하여한번의 m-원합병으로완료 u -원합병의경우 한번의패스 : 합병된런의크기는 배, 런의수는반 N개의런으로분할된정렬위한패스수 : élog N ù 7 6 개의런에대한 -원합병 () 정렬단계 () 차합병 내부정렬 6000 레코드정렬된 6개의런을 개의입력로분배 000 레코드씩정렬된 6 개의런 런 런 () 차합병 런 런 런 -000 런 에있는 개의런을 개의입력로분배 차합병 런 (+) 런 (+) 런 (5+6) 런 (5+6) 런 (+) 런 (+) 차합병 런 (+++) 런 (5+6) () 차합병런 (+++) 런 (5+6) 차합병 ( 개의입력과 개의출력 ) 런 ( ) 8
10 개의런에대한 -원합병 () 정렬단계 내부정렬 500 레코드씩정렬된 개의런 6000 레코드 정렬된 개의런을 개의입력로분배 () 차합병 런 런9... 런 런 런0... 런 차합병 런 (+) 런 (+)... 런 (+) 에있는 6 개의런을 개의입력로분배 () 차합병 런 (9+0) 런 (5+6) 런 (+) 런 (+++) 차합병 런 ( ) 런 (9+0++) 런 (+) 런 (7+8) 런 (+) 에있는 개의런을 개의입력로분배 9 개의런에대한 -원합병 () 차합병 런 (+++) 런 (9+0++) 차합병 런 ( ) 런 (9+0++) 런 ( ) (5) 차합병 런 ( ) 차합병 런 ( ) 런 (9+0++) 0
11 6개의런에대한 -원합병 () 정렬단계 내부정렬 000레코드씩정렬된 6개의런 6000 레코드 정렬된 6 개의런을 개의입력로분배 () 차합병 런 런 런5 런 차합병 런 (++) 런 (+5+6) 런 6 런 에있는런을 개의입력로분배 ( 이경우에는 개의만사용됨 ) () 차합병런 (++) 런 (+5+6) 차합병 런 (++..+6) ( 개의입력과 개의출력 ) m-원합병알고리즘 mwaymerge() // m-원합병알고리즘 // m : 입력의수 // FILE[] : 배열 // outfilenum : 출력을포함하는배열의인덱스 // r : 현단계에서합병되지않고입력에남아있는런수 // runcount : 현단계에서생성된런의수 // 합병단계 openfile(file[],..., FILE[m]); // for reading openfile(file[m+]); // for writing runcount 0; mergeruns(file[],..., FILE[m] FILE[m+]); runcount runcount + ; } while (!end-of-file on any one input file); // 합병되지않고입력에남아있는런수의계산및 // 다음단계의출력선택 r 0; for (i m; i ; i--) { if (!end-of-file(file[i])) r r + ; else outfilenum i; } runcount runcount + r;
12 // 을배열에재할당 FILE[],..., FILE[m+] FILE[],..., FILE[outfilenum-], FILE[outfilenum+],..., FILE[m+],..., FILE[outfilenum]; closefile(file[],..., FILE[m]); // 런들의분산단계 openfile(file[m]); // for reading openfile(file[],..., FILE[m-]); // for writing // FILE[],..., FILE[m] 내의런수의차이가 이하가되도록 // runcount/m, runcount/m -, runcount/m - 개씩의런들을배분 i 0; k m * runcount/m - runcount; i i + ; if (k = 0) { if (end-of-file(file[i])) move( runcount/m runs, from FILE[m] to FILE[i]); else move (( runcount/m - ) runs, from FILE[m] to FILE[i]); } else { k k - ; if (end-of-file(file[i])) move(( runcount/m - ) runs, from FILE[m] to FILE[i]); else move (( runcount/m - ) runs, from FILE[m] to FILE[i]); } } while (i m-); } while (runcount ); // 정렬된최종목표은 FILE[m] end mwaymerge() 선택트리 (selection tree) () u m개의런을하나의큰런으로정렬 m개의런 ( 레코드 ) 중가장작은키값의레코드를계속선택, 출력 간단한방법 : m-번비교 선택트리 : 비교횟수를줄일수있음 u 선택트리의종류 승자트리 (winner tree) 패자트리 (loser tree)
13 선택트리 () u 승자트리 (winner tree) 특징 완전이진트리 각단말노드는각런의최소키값원소를나타냄 내부노드는그의두자식중에서가장작은키값을가진원소를나타냄 런이 8개 (k=8) 인경우승자트리예 [] 7 [] 7 9 [] [] [5] [6] [7] [8] [9] [0] [] [] [] [] [5] 런 런 런 런 런 5 런 6 런 7 런 8 5 선택트리 () 승자트리구축과정 가장작은키값을가진원소가승자로올라가는토너먼트경기로표현 트리의각내부노드 : 두자식노드원소의토너먼트승자 루트노드 : 전체토너먼트승자, 즉트리에서가장작은키값가진원소 승자트리의표현 승자트리는완전이원트리이기때문에순차표현이유리 인덱스값이 i 인노드의두자식인덱스는 i 와 i+ 합병의진행 루트가결정되는대로순서순차에출력 ( 여기선 7) 다음원소즉키값이 인원소가승자트리로들어감 승자트리를다시재구성 노드 에서부터루트까지의경로를따라가면서형제노드간토너먼트진행 6
14 선택트리 () 다시만들어진승자트리의예 [] 9 [] 0 [] 9 [] [5] [6] [7] [8] [9] [0] [] [] [] [] [5] 런 8 런 런 6 0 런 0 런 5 8 런 런 7 9 런 8 이런방식으로순서순차구축을계속함 7 선택트리 (5) u 패자트리 (loser tree) 루트위에 0 번노드가추가된완전이원트리 성질 () 단말노드 : 각런의최소키값을가진원소 () 내부노드 : 토너먼트의승자대신패자원소 () 루트 ( 번노드 ) : 결승토너먼트의패자 () 0 번노드 : 전체승자 ( 루트위에별도로위치 ) 8
15 선택트리 (6) 런이 8 개 (k=8) 인패자트리의예 [0] 7 출력 [] 9 [] 0 [] 8 [] [5] [6] [7] 0 50 [8] [9] [0] [] [] [] [] [5] 런 8 런 런 6 0 런 0 런 5 8 런 런 7 9 런 8 9 선택트리 (7) 패자트리구축과정 단말노드 : 각런의최소키값원소 내부노드 두자식노드들이부모노드에서토너먼트경기를수행 패자는부모노드에남음 승자는그위부모노드로올라가서다시토너먼트경기를계속 번루트노드 마찬가지로패자는 번루트노드에남음 승자는전체토너먼트의승자로서 0 번노드로올라가순서순차에출력됨 합병의진행 출력된원소가속한런 의다음원소, 즉키값이 인원소를패자트리노드 에삽입 패자트리를다시재구성 토너먼트는노드 에서부터루트노드 까지의경로를따라경기를진행 다만경기는형제노드대신형식상부모노드와경기를함 0
16 v 균형합병 (balanced merge) M- 원합병의단점 : 의재분배에많은 I/O 필요 u 균형합병 출력할때, 미리다음단계에사용할입력로재분배즉, 출력을다음단계의입력로직접사용 m- 원자연합병 : m + 개의필요 m- 원균형합병 : m 개의필요 (m 입력, m 출력 ) u 각합병단계후 런의총수는합병차수로나눈만큼감소 런의길이는합병차수의두배씩증가 O(log m N), N : 초기런의수 개의런에대한 -원균형합병 () 정렬단계 6000 레코드 내부정렬 000 레코드씩정렬된 6 개의런 생성된 개의런을 개의에분배 () 차합병 런 런 9... 런 차합병 런 (+) 런 (5+6) 런 (9+0) 런 런 0... 런 런 (+) 런 (7+8) 런 (+) () 차합병 런 (+) 런 (5+6) 런 (9+0) 차합병 런 (+++) 런 (9+0++) 런 (+) 런 (7+8) 런 (+) 런 ( )
17 개의런에대한 -원균형합병 () 차합병 런 (+++) 런 (9+0++) 런 ( ) 차합병 런 ( ) 런 (9+0++) (5) 차합병 런 ( ) 차합병 런 ( ) 런 (9+0++) 주의런 () 은 번판독 / 기록되었음. m-원균형합병알고리즘 balancedmerge() // m-원균형합병알고리즘 // m : 입력수 ( 모두 m개의사용 ) // FILE[] : 배열 // input-set-first : 현단계에서입력과출력세트를구분하기위한플래그 // base : 출력세트의첫번째번호 // outfilenum : 현단계의출력번호 // runcount : 현단계에서생성된런의수 input-set-first false; if (input-set-first) { input-set-first false; openfile(file[],..., FILE[m]); // for reading; openfile(file[m+],...,file[m]); // for writing; base m + ; } else { input-set-first true; openfile(file[],..., FILE[m]); // for writing; openfile(file[m+],...,file[m]); // for reading; base ; }
18 m-원균형합병알고리즘 // 합병단계의수행 outfilenum 0; runcount 0; mergerun(input files FILE[base+outfilenum]); runcount runcount + ; outfilenum (outfilenum + ) % m; } while (!end-of-file on all input files); rewind(input files and output files); } while (runcount ); // input-set-first 가 true 면최종정렬은 m+, // false 면최종정렬은 end balancedmerge() 5 v 다단계합병 (Polyphase Merge) u m-원균형합병기법 m개의이필요 (m개입력, m개출력 ) 단점 : 하나의합병된런이생성되는동안 m- 개의파일은항상유휴상태 u m-원다단계합병 (m-way polyphase merge) 유휴문제와런의단순복사문제를개선 m 개의입력과 개의출력을사용 입 / 출력수가같지않음 : " 불균형 " 합병 초기입력에대한런의 불균등 분배가복잡 u 각합병단계 (pass) 입력의어느하나가이될때까지만런들을합병 이된입력은다음합병단계의출력이됨 6
19 -원다단계합병의예 : : : : : : (a) 정렬단계결과 (b) 차합병결과 : : : : : : (c) 차합병결과 (d) 차합병결과 7 -원다단계합병에서런수의변화 u 각합병단계마다하나의입력만이됨 정렬단계 차합병 차합병 차합병 런합계
20 초기생성할런수의결정방법 u -원다단계합병을위한런수 (m m = ) [,, ],, 5, 9, 7,, u 차 (m=) 피보나치 (Fibonacci) 수열 T i = T i - + T i - + T i -, i > T i =, i u m차피보나치수열 T i =, i m i Ti = å - Tk, i > k = i - m m 9 완전피보나치런분배방법 (m m = ) u 원으로표시된수를다음단계의다른에합산시킴 차 차 차 차 7 6 런수
21 완전피보나치분배 u m-원다단계합병을위한초기의런수를 m차피보나치수열의한항이되는수가되도록생성 u 이런들을피보나치분배방법에따라분배 u 완전피보나치분배의장점 합병단계에서마지막패스를제외하고는각패스가끝날때항상하나의입력만이됨 합병을위한각패스에서입력수는항상 m 이됨 마지막패스에서는입력이모두동시에이되면서모든런들이출력에하나의런으로만들어짐 합병단계에서패스수가줄어듬 -원다단계합병 정렬단계 6000 레코드 내부정렬 차합병 7개의런 6개의런 개의런 차합병 개의런 런, 런 6, 런 7, 런 0, 런, 런, 런 런, 런, 런, 런 5, 런 6, 런 7 런, 런 5, 런 8, 런 9 은이됨 차합병 개의런 개의런 개의런 차합병 개의런 개의런 개의런 차합병 차합병 개의런 차합병 개의런 개의런 개의런 차합병 개의런 개의런 는이됨은이됨 는이됨
22 각합병단계에서당런수의변화 런합계 정렬단계 차합병 차합병 차합병 차합병 u 초기런에대한완전피보나치분배방법의역순 -원다단계합병의예 : : : : : : : : (a) 정렬단계결과 (b) 차합병결과 : : : : (c) 차합병결과
23 m-원다단계합병알고리즘 polyphasemerge() // m-원다단계합병알고리즘 // m : 입력의수 // FILE[] : 배열 // 입력에는피보나치분배방법으로런들이분배되었다고가정 // 준비 for (i ; i m; i++) openfile(file[i]); // for reading; openfile(file[m+]); // for writing; // 합병단계 mergerun(file[],..., FILE[m] FILE[m+]); } while (!end-of-file(file[m])); rewind(file[m] and FILE[m+]); closefile(file[m] and FILE[m+]); openfile(file[m+]); // for reading openfile(file[m]); // for writing // 을배열에재할당 FILE[], FILE[],..., FILE[m+] FILE[m+], FILE[],..., FILE[m]; } while (!end-of-file on all files on FILE[],..., FILE[m]); // 정렬된최종목표은 FILE[] end polyphasemerge() 5 v 계단식합병 (Cascade Merge) 정렬 / 합병과정에서런들의복사작업을줄이려는불균형합병의또다른형태 u m-원계단식합병 (m-way cascade merge) 초기런생성과런의분배가중요 ( 완전피보나치분배 ) 합병을위한입력수가 m개에서시작하여 m-, m-,, 로줄어들어마지막 개로될때한주기가끝남 합병단계 m개의입력로부터 m개의런을하나의런으로합병하여출력로생성 입력하나가이되면이이새로운출력로되고이전의출력은대기 나머지입력들은이새로운출력로합병된런을생성 개의입력을합병하는단계가되면합병의한주기가종료 한주기에각레코드는한번씩만처리 6
24 -원계단식합병 : : : : : : : : (a) 정렬단계결과 (b) 합병 주기 차합병결과 : : : : : : : : (c) 합병 주기 차합병결과 (d) 합병 주기 차합병결과 7 -원계단식합병 합병 주기 7개의런 주기 6개의런 패스 개의런 개의런 은 는대기 합병 주기 합병 주기 개의런 개의런 개의런 개의런 주기패스 개의런 주기패스 개의런 개의런 개의런 개의런 주기패스 개의런 개의런 주기 개의런 패스 개의런 개의런 과 는 는 은대기 은 는대기 은 은대기 은대기 합병 주기 개의런 개의런 주기패스 개의런 는 8
25 m-원계단식합병알고리즘 cascademerge() // m-원계단식합병알고리즘 // m : 입력의수 // FILE[] : 배열 // 입력에는완전피보나치분배에따라런들이분배되어있다고가정 // 의준비 for (i ; i m; i++) openfile(file[i]); // for reading; openfile(file[m+]); // for writing; // 합병단계 i 0; i i + ; mergeruns(file[],..., FILE[m-i+] FILE[m-i+]); } while (!end-of-file(file[m-i+])); rewind(file[m-i+] and FILE[m-i+]); closefile(file[m-i+] and FILE[m-i+]); // 하나이상의이비었을경우해당단계를생략함 empty-file true; k ; 9 m-원계단식합병알고리즘 while (empty-file && i < m-) { if (end-of-file(file[m-i+-k])) { i i + ; k k + ; rewind(file[m-i+-k]); closefile(file[m-i+-k]); } else empty-file false; } // 다음단계의출력준비 openfile(file[m-i+]); // for writing } while (i m-); // 을런수의내림차순으로정렬한후배열에재할당 reallocatefiles(file[],..., FILE[m+], run count of FILE[] run count of FILE[]... run count of FILE[m+]); // 남은수의재조정 no-more-empty false; if (end-of-file(file[k])) m m - ; else no-more-empty true; } while (m &&!no-more-empty); } while (m ); // 최종정렬된목표은 FILE[] end cascademerge() 50
26 v 정렬 / 합병유틸리티 u 정렬 / 합병유틸리티 (utility) 를이용 범용의정렬 / 합병작업을지원 u 유틸리티의기능 () 하나또는그이상의정렬 () 둘또는그이상의합병 () 둘또는그이상의정렬과합병 u 정렬 / 합병패키지사용시명세내용 () 정렬 / 합병할의이름 () 정렬 / 합병의키필드의데이타타입, 길이, 위치 () 키필드들의순서 (major에서 minor 순으로 ) () 각키필드에적용할정렬순서 (ASC, 또는 DES) (5) 각키필드에적용될순서기준 (6) 정렬 / 합병결과를수록할출력의이름 5 패키지에서사용자명세사항 () 사용자가정의한정렬순서및기준 () 내부정렬단계에서사용할알고리즘 ( 예 : quicksort, heapsort) () 합병단계에서사용할알고리즘 ( 예 : 균형, 다단계, 계단식합병 ) () 사용전후에필요한동작 ( 예 : rewind, unload) (5) 합병단계에서입력레코드가올바른순서로되어있는가의검사 (6) 회복을위한체크포인트 (check point)/ 덤프레코드 (dump record) 를사용하는주기 (7) 예상입력레코드수 5
27 유틸리티를이용한정렬 / 합병의예 / / SORTNOW EXEC SORTMRG / / SORTIN DD DSN = name of input file,..., / / DISP = (OLD, KEEP) / / SORTOUT DD DSN = name of output file,..., / / DISP = (NEW, KEEP) / / SYSIN DD * / * SORT FIELDS=(,,CH,A,0,0,CH,D), FILEZ=E000 SORTMRG(input-filename, output-filename)... SORT, VAR = POLY FILE, INPUT = name(cu), OUTPUT = name(r) FIELD, DEPT(,,ASCII6), SALEDATE(0, 0, ASCII6) KEY, DEPT(A,ASCII6), SALEDATE(D, ASCII6) job control command 5 v 저장장치와정렬 / 합병 u 합병단계에서사용되는외부저장장치의물리적특성도정렬 / 합병시간에영향 u 순차접근만허용되는자기테이프의경우 각이서로다른릴에저장 테이프 rewind 시간이필요 u 임의접근이가능한디스크의경우 정렬 / 합병될들이하나의디스크에저장 디스크입 / 출력연산 ( 탐구시간 + 회전지연시간 ) 이테이프 ( 시작시간 + 정지시간 ) 보다더많은오버헤드를수반. 그러나테이프보다훨씬빠른데이타전송률로보상 탐구와회전지연에따른접근오버헤드감축방법 들을 개이상의디스크로분산시켜입 / 출력연산을병렬처리 의입 / 출력요구를병렬로처리하기위해서는디스크마다별도의디스크제어기가있어야됨 5
Microsoft PowerPoint Merging and Sorting Files.ppt
자료처리 () 006 년봄학기문양세강원대학교컴퓨터과학과 정렬 / 합병의개요 정렬의종류 : 내부정렬, 외부정렬 내부정렬 (internal sorting) 데이타가적어서메인메모리내에모두저장시켜정렬가능할때사용함 레코드의판독 (read) 및기록 (write) 에걸리는시간이문제가되지않음 외부정렬 (external sorting) 데이타가많아서메인메모리의용량을초과하여보조기억장치
More informationMicrosoft PowerPoint - 알고리즘_5주차_1차시.pptx
Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1
More informationchap 5: Trees
Chapter 5. TREES 목차 1. Introduction 2. 이진트리 (Binary Trees) 3. 이진트리의순회 (Binary Tree Traversals) 4. 이진트리의추가연산 5. 스레드이진트리 (Threaded Binary Trees) 6. 히프 (Heaps) 7. 이진탐색트리 (Binary Search Trees) 8. 선택트리 (Selection
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information슬라이드 1
CHAP 7: 트리 C 로쉽게풀어쓴자료구조 생능출판사 2005 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 대표이사 응용분야 : 계층적인조직표현 총무부 영업부 생산부 파일시스템 인공지능에서의결정트리 전산팀구매팀경리팀생산 1 팀생산 2 팀 트리의용어 노드 (node): 트리의구성요소 루트 (root): 부모가없는노드
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More information쉽게 배우는 알고리즘 강의노트
쉽게배우는알고리즘 장. 정렬 Sorting http://www.hanbit.co.kr 장. 정렬 Sorting 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고,
More information6장정렬알고리즘.key
6 : :. (Internal sort) (External sort) (main memory). :,,.. 6.1 (Bubbble Sort).,,. 1 (pass). 1 pass, 1. (, ), 90 (, ). 2 40-50 50-90, 50 10. 50 90. 40 50 10 비교 40 50 10 비교 40 50 10 40 10 50 40 10 50 90
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More information제 11 장 다원 탐색 트리
제 11 장 다원탐색트리 Copyright 07 DBLB, Seoul National University m- 원탐색트리의정의와성질 (1) 탐색성능을향상시키려면메모리접근횟수를줄여야함 탐색트리의높이를줄여야함 차수 (degree) 가 2보다큰탐색트리가필요 m- 원탐색트리 (m-way search tree) 공백이거나다음성질을만족 (1) 루트는최대 m 개의서브트리를가진다.
More information슬라이드 1
CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if
More information7장
CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트
More information슬라이드 1
CHAP 9: 정렬 정렬이란? 정렬은물건을크기순으로오름차순이나내림차순으로나열하는것 정렬은컴퓨터공학분야에서가장기본적이고중요한알고리즘중의하나 정렬은자료탐색에있어서필수 ( 예 ) 만약사전에서단어들이정렬이안되어있다면? 정렬의단위 레코드 정렬의대상 학생들의레코드 이름학번주소연락처 레코드 필드필드필드필드 키 (key) 정렬알고리즘의개요 많은정렬알고리즘존재 단순하지만비효율적인방법
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More informationMicrosoft PowerPoint - 제8장-트리.pptx
제 8 강의. 트리 (Tree) 자료구조 1. 트리의개념 2. 이진트리 3. 이진트리의저장 1 트리자료구조필요성연결리스트의삽입삭제시데이터를이동하지않는장점을살리자. 연결리스트의검색시노드의처음부터찾아가야하는단점을보완하자. 데이터를중간부터찾아가는이진검색의장점을이용하자. 연결리스트의포인터를리스트의중간에두는방법? ptr 10 23 34 42 56 검색을중간부터시작하여좌우중하나로분기,
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More informationChapter 4. LISTS
6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립
More informationIndex Process Specification Data Dictionary
Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information제 7 장 정렬
제 7 장 정렬 Copyright 2007 DBLAB, Seoul National University 탐색 (1) 용어정리 리스트 : 하나이상의필드로된레코드의집합 키 (Key) : 레코드를구분하기위해서사용되는필드 순차탐색 (Sequential Search) 레코드리스트를왼편에서오른편또는오른편에서왼편으로레코드를검사하는것 Copyright 2007 DBLAB,
More information08장.트리
---------------- T STRUTURES USING ---------------- HPTER 트리 /29 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모-자식관계의노드들로이루어짐 응용분야 : 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀 생산 팀 생산 2 팀 (a) 회사의조직도 내문서 동영상음악사진 영화예능드라마 여행 (b) 컴퓨터의폴더구조
More information정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2
13. 탐색트리 AVL 트리, B- 트리, 2-3-4 트리 정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2 이진탐색트리의예 3 BST 의최선과최악의경우
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue
More informationUSER GUIDE
Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.
More information05_tree
Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical
More informationchap x: G입력
재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>
/* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information금오공대 컴퓨터공학전공 강의자료
데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미
More information4. 순차화일 DBLAB, SNU v 순차화일 (sequential file) u 정의 레코드들을조직하는가장기본적인방법 화일생성시레코드들을연속적으로저장하기때문에레코드들을접근할때도저장순서에따라연속적으로접근하는것이효율적 스트림화일 (stream file) u 레코드저장기준
4. 순차화일 DBLAB, SNU v 순차화일 (sequential file) u 정의 레코드들을조직하는가장기본적인방법 화일생성시레코드들을연속적으로저장하기때문에레코드들을접근할때도저장순서에따라연속적으로접근하는것이효율적 스트림화일 (stream file) u 레코드저장기준에의한종류 입력순차화일 (entry-sequenced file) 레코드가입력되는순서대로저장,
More informationAlgorithms
자료구조 & 알고리즘 정렬과탐색알고리즘 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 기초적인정렬알고리즘 고급정렬알고리즘 탐색알고리즘 2 정 렬 (Sort) 정렬 (sort) 의개념 순서없이배열되어있는자료들을재배열하는것 정렬의대상 : 레코드 정렬의기준 : 정렬키 (sort key) 필드 정렬방법의분류
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationChapter 08. 트리(Tree)
윤성우의열혈자료구조 : C 언어를이용한자료구조학습서 Chapter 08. 트리 (Tree) Introduction To Data Structures Using C Chapter 08. 트리 (Tree) Chapter 08-1: 트리의개요 트리의접근과이해 트리는계층적관계 (Hierarchical Relationship) 를표현하는자료구조이다. 트리의예 트리의예
More informationEA0015: 컴파일러
5 Context-Free Grammar 무엇을공부하나? 앞에서배운 " 정규식 " 은언어의 " 어휘 (lexeme)" 를표현하는도구로사용되었다. 언어의 " 구문 (syntax)" 은 " 정규언어 " 의범위를벗어나기때문에 " 정규식 " 으로표현이불가능하다. 본장에서배우는 " 문맥자유문법 " 은언어의 " 구문 (syntax)" 을표현할수있는도구이다. 어떤 " 문맥자유문법
More informationChap 6: Graphs
5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV
More informationPowerPoint Presentation
Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More information7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬
7장인덱스된 순차화일 v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 레코드전체에대한순차접근을지원 u 인덱스화일 화일의레코드들에대한키값과포인터를저장 개별레코드에대한직접접근을지원 u
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationMicrosoft PowerPoint - 27.pptx
이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)
More information슬라이드 1
6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,
More information슬라이드 1
Data Structure Chapter 8. 우선순위큐 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 우선순위큐추상데이터타입 우선순위큐 우선순위큐 (priority queue) 정의 : 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게됨 스택이나 FIFO 큐를우선순위큐로구현할수있음
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More informationLet G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ
알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2016년 12월15일 ( 목 ) 오전 9시40분 ~) 담당교수 : 서강대학교컴퓨터공학과임인성 < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고, 반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. function MakeSet(x) { x.parent
More information-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth
-09- 쉽게배우는알고리즘 장. 정렬 Sortng http://academy.hanb.co.kr 장. 정렬 Sortng 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 한빛미디어 1 -09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다.
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information슬라이드 1
CHAP 8: 우선순위큐 yicho@gachon.ac.kr 1 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터
More informationJava ...
컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.
More informationMicrosoft PowerPoint - lec07_tree [호환 모드]
Tree 2008학년도 2학기 kkman@sangji.ac.krac kr -1- 트리 (Tree) 1. 개요 ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모 - 자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 -2- 트리자료구조를사용하는이유? ~ 다른자료구조와달리비선형구조. ~ 정렬된배열 탐색은빠르지만
More informationChap 6: Graphs
그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]
More informationPowerPoint Presentation
자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,
More informationPowerPoint 프레젠테이션
순환알고리즘 C 로쉽게풀어쓴자료구조 순환 (recursion) 수행이끝나기전에자기자신을다시호출하여문제해결 - 직접순환, 간접순환 문제정의가순환적으로되어있는경우에적합한방법 ( 예제 ) 팩토리얼 피보나치수열 n! 1 n * ( n 1)! n n 0 fib( n) 1 fib ( n 2) fib( n 1) 1 ` 2 if if n 0 n 1 otherwise 이항계수
More information18강.hwp
------------------8강 데이터 관리------------------ **주요 키워드 ** () 레코드관리 () 정렬 () 자동필터, 고급필터 () 그룹과 윤곽설정, 텍스트나누기, 외부데이터 () 레코드관리********************************** [08/]. 다음 중 [데이터]-[레코드 관리]에 대한 설명으로 옳지 않은 것
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More informationOpenFrame
OpenFrame SORT 유틸리티참조안내서 OpenFrame/Batch for VOS3 2.0 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263
More information5장 SQL 언어 Part II
5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT
More informationUI TASK & KEY EVENT
2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize
More information완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에
1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >
More information예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A
예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More information<4D F736F F F696E74202D203728B0E8BBEABAB9C0E2B5B5B0B3B7D02DC1A4B7C4B9AEC1A6292E BC8A3C8AF20B8F0B5E55D>
계산복잡도 Computatioal Complexity 계산복잡도개론정렬문제 알고리즘의분석 어떤특정알고리즘의효율 (efficiecy 을측정 시간복잡도 (time complexity 공간복잡도 (space/memory complexity 문제의분석 일반적으로 계산복잡도분석 이란이를지칭 어떤문제에대해서그문제를풀수있는모든알고리즘의효율의하한 (lower-bou 을결정한다.
More information2002년 2학기 자료구조
자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information슬라이드 1
CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템 ( 여기서의우선순위는대개사건의시각이다.)
More informationMicrosoft PowerPoint - 6장 탐색.pptx
01. 순차탐색 02. 이진탐색 03. 이진탐색트리 04. 레드블랙트리 탐색 (search) 기본적으로여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요. 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열, 연결리스트, 트리, 그래프등 탐색키데이터 순차탐색 (sequential
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More informationCh.1 Introduction
Tree & Heap SANGJI University Kwangman Ko (kkman@sangji.ac.kr) 트리개요 트리 (Tree) ~ 계층적인구조를나타내는비선형 (Non-linear) 자료구조 ~ 트리는부모-자식관계의노드로구성 ~ 응용분야 계층적인조직표현 파일시스템 인공지능에서의결정트리 kkman@sangji.ac.kr 2 트리자료구조를사용하는이유?
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationMySQL-.. 1
MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition
More information정보
정보 Sangwook Lee Deogi High School III 문제해결과프로그래밍 1 추상화 2 알고리즘 3 프로그래밍 2 알고리즘 2-1 알고리즘설계 2-2 알고리즘분석 3 2-1 알고리즘설계 (p.108) 학습목표 순차, 선택, 반복구조의흐름을설명할수있다. 다양한제어구조를활용하여논리적이고효율적인알고리즘을설계할수있다. 4 [1] 알고리즘제어구조 (p.109)
More information서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가
서강대학교공과대학컴퓨터공학과 (/5) CSE08 ( 반 ): 알고리즘설계와분석 < 프로그래밍숙제 > (v_.0) 담당교수 : 임인성 05 년 0 월 일 마감 : 0 월 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가과목게시판에공고할예정임. 목표 : 주어진문제에대한분석을통하여 optimal substructure 를유추하고, 이를 bottom-up
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More informationChap 6: Graphs
AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node
More informationMicrosoft PowerPoint - 05알고리즘.pptx
이산수학 Discrete Mathematics 알고리즘 (Algorithm) 인천대학교컴퓨터공학과공학시인이숙이철호교수 Jullio@chol.com zullio@inu.ac.kr 010 3957 6683 모바일컴퓨팅연구실 07 401 호 꿈의중독자가되라 출처 : 조영탁의행복한경영이야기나는여러분이 꿈중독자 가되었으면합니다. 꿈이크고꿈이선명하면남이하지말라고해도스스로열심히노력하게될것입니다.
More informationCh.8 Procedures and Environments
Chapter 9 정렬 (sorting) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 정렬 (sorting) 이란? 정의 물건을크기순으로오름차순이나내림차순으로나열하는것 컴퓨터공학분야에서가장기본적이고중요한알고리즘중의하나 정렬은자료탐색에있어서필수적. ( 예 ) 만약사전에서단어들이정렬이안되어있다면? 정렬알고리즘의개요
More informationPowerPoint 프레젠테이션
UNIX 및실습 11 장유닉스유틸리티 이용하기 1 학습목표 유닉스시스템이제공하는다양한유틸리티의사용방법을익힌다. 파일의행수, 단어수, 문자수를찾는방법을익힌다. 파일을정렬하고내용의중복을제거하는방법을익힌다. 파일을분할하거나원하는부분을잘라내어붙여서새로운파일을생성하는방법을익힌다. 2 01. 파일정보수집 - wc 파일의라인수, 단어수, 바이트, 문자수출력 옵션 -c :
More information슬라이드 1
CHAP 8: 우선순위큐 우선순위큐 우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 우선순위큐 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 자료구조스택큐우선순위큐 삭제되는요소가장최근에들어온데이터가장먼저들어온데이터가장우선순위가높은데이터 응용분야 : 시뮬레이션시스템
More information윈도우즈프로그래밍(1)
제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장
More informationVisual Basic 반복문
학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For
More informationMicrosoft PowerPoint - 26.pptx
이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계
More informationObservational Determinism for Concurrent Program Security
웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More information< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시
문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시에서 이후는각입력과출력에대한설명이다. 11장2절 [ 문제 1 ] 3차원벡터를저장할구조체를선언후두개의 3차원벡터 (V 1, V 2 ) 를입력받으시오.
More informationVer 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권
마감하루전 Category Partitioning Testing Tool Project Team T1 Date 2017-05-12 Team Information 201111334 김강욱 201211339 김진욱 201312243 김동권 201510411 이소영 [ 마감하루전 ] T1 1 INDEX Activity 2041. Design Real Use Cases
More information슬라이드 1
Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색
More informationMicrosoft PowerPoint - polling.pptx
지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식
More informationMicrosoft PowerPoint - chap10_tree
Chap. 10 : Tree 2007 학년도 2 학기 1. 개요 재귀 (recursion) 의정의, 순환 ~ 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 ~ 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 ~ 정의자체가순환적으로되어있는경우에적합한방법 ~ 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색 -2-
More information