목록분류 전체보기 (93)
판봉 개발 일기
해싱의 개요 해싱은 Hash Table이라는 기억공간을 할당하고, 해시 함수를 이용하여 레코드 키에 대한 Hash Table 내의 Home Address를 계산한 뒤 주어진 레코드를 해당 기억장소에 저장하거나 검색 작업을 수행하는 방식입니다. 해싱은 DMA(직접 접근) 파일을 구성할 때 사용되며, 접근 속도는 빠르나 기억공간이 많이 요구됨 다른 방식에 비해 검색 속도가 가장 빠르다 삽입, 삭제 작업의 빈도가 많을때 유리한 방식 키-주소 변환 방법 해시 테이블(Hash Table, 해시표) 해시 테이블은 레코드를 한 개 이상 보관할 수 있는 Bucket들로 구성된 기억공간으로 보조기억장치에 구성도 되고 주기억 장치에도 구성이 가능함 버킷 : 하나의 주소를 갖는 파일의 한 구역이며 크기는 같은 주소에 포함될..
검색은 컴퓨터를 이용하여 기억공간에 보관중인 특정 레코드를 찾아내는 작업입니다. 선형 검색(Linear Search) 선형 검색은 순서화되지 않은 파일에서 순차적으로 검색하는 것으로 키값을 첫번째 레코드 키값부터 차례로 비교함 순차 검색(Sequential Search)라고도 합니다. 프로그램 작성이 가장 쉽습니다. 평균 검색 횟수는 (n+1)/2입니다. 제어 검색(Control Search) 제어 검색은 반드시 순서화되어있어야 검색할 수 있습니다. 한번의 비교 동작이 끝나고 비교 대상이 된 레코드를 다음에 비교할 대상을 선택하는 기준으로 이용해 검색합니다. 이분 검색(이진 검색, Binary Search) 전체 파일을 두개의 서브파일로 분리하며 키 레코드를 검색합니다. 찾으려는 키의 값을 파일으 중간 ..
삽입 정렬(insertion Sort) 삽입 정렬은 가장 간단한 정렬 방식으로 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시킨다음에 정렬하는ㄱ ㅓㅅ입니다. 평균과 최악 모두 수행 시간 복잡도는O(n2)입니다. 쉘 정렬(Shell Sort) 쉘 정렬은 삽입정렬을 확장한 개념입니다. 평균 수행 복잡도는 O(n1.5)이고, 최악의 수행 시간 복잡도는 삽입 정렬과 같습니다. 쉘 정렬의키워드는 매개변수입니다. 선택 정렬(Seletcion Sort) 선택 정렬은 n개의 레코드 중에서 최소값을 찾아 첫번째 레코드 위치에 놓고 나머지 (n-1)개 중에서 다시 최소값을 찾아 두번째 레코드 위치에 놓는 방식을 반복하는 것입니다. 평균과 최악 모두 수행 시간 복잡도는 O(n2)입니다. 버블 정렬(Bubbl..
오늘은 javascript의 Object. 즉, 객체에 대해서 알아보겠습니다. 객체(Object) 객체는 여러가지 자료형의 데이터를 담을 수 있는 자료구조입니다. let user0 = {}; 이것은 객체를 생성하고 빈 객체로 초기화한 것입니다. 자바스크립트에서 빈객체를 생성하는 방법은 크게 두가지가 있습니다. let user = new Object() // '객체 생성자' let user = {}; '객체 리터럴' 보시다시피 아래에 쓰는 방법이 더욱 간단합니다. 그것은 객체 리터럴(Object literal)이라고 부릅니다. 그래서 주로 객체 리터럴을 사용하는 방식을 택합니다. 객체의 구조 let user1 = { name:"john", age:30, // trailing-coma가 표준 } 객체의 구조..
정렬은 파일을 구성하는 각 레코드를 특정 키 항목을 기준으로 오름또는 내림차순으로 재배열 하는 작업입니다. 정렬 방식 정렬은 크게 주기억장치에서 이루어지는 내부 정렬과 보조기억장치에서 이루어지는 외부정렬이 있습니다. 내부정렬 선택법 : 히프 삽입법 : 삽입,쉘정렬 교환법: 버블,선택,퀵정렬 병합법 : 2-way Merge Sort 분배법 : 기수 정렬(Radix Sort) 내부 정렬이란 소량의 데이터에 대해 주기억 장치에 기억시켜서 정렬하는 방법입니다. 외부정렬 밸런스 병합정렬 캐스케이드 병합 정렬 폴리파즈 병합 정렬 옷리레이팅 병합 정렬 대부분 외부정렬은 병합정렬으로 처리합니다. 정렬 알고리즘 선택시 주의 사항 데이터의 양 초기 데이터의 배열 상태 키 값들의 분포 상태 소요공간과 작업시간 사용하는 컴퓨..
오늘은 javascript에서 함수에 관련된것을 조금 더 배웠습니다. 한번 함수 표현식 부터 차례대로 알아보겠습니다!😁😁 함수 표현식 자바스크립트는 함수를 특별한 종류의 값으로 취급을 합니다. 이전에는 저희가 함수 선언문 방식으로 만들었습니다. function sayHi() { alert( "Hello" ); } 위 와 아래는 분명히 다릅니다. 함수를 생성하고 변수에 값을 할당하듯이 함수가 변수에 할당되었습니다!!👍👍 굉장히 유연한 방식이죠? 위 함수 표현식은 sayHi라는 변수안에 함수를 할당한 것입니다. 위 사진은 마지막 줄에서 sayHi라는것 옆에 ()가 없어서 함수는 실행 되지 않습니다. 반드시 자바스크립트에서는 괄호가 있어야만 실행이 됩니다! 그리고 함수를 변수에 할당할 수 있으므로 이런 것도 ..
그래프의 정의 그래프 G는 정점 V(Vertax)와 간선 E(Edge)의 두 집합으로 이루어짐 간선의 방향성 유무에 따라 방향 그래프와 무방향 그래프로 구분됨 통신망, 교통망, 이항관계, 연립방정식, 유기화학 구조식, 무향성분 해법 등에 이용 Tree는 사이클이 없는 Graph입니다. 용어 정리 Loop - 한 정점에서 그 자신에 이어지는 간선 Loop 차수 무방향 그래프 : 한 정점에 연결된 간선의 수 방향 그래프 - 진입 차수(Indegree) : 한 정점에 도착하는 방향 간선의 수 - 진출 차수(Outdegree) : 한 정점에서 출발하는 방향 간선의 수 - 차수 = 진입차수 + 진출 차수 경로(Path)- 임의의 정점에서 다른 정점에 이르는 길 경로 길이 : 경로상에 있는 간선들의 수 단순 경로 ..
오늘은 드디어 반복문과 함수에 대해서 배웠습니다. 이제부터 알아보도록 하겠습니다. while문 while은 반복문의 일종으로 문법은 다음과 같습니다. while(조건) { 실행문 } 만약에 조건이 true라면 실행문이 실행 됩니다. *while안의 조건이 true라면 항상 실행됩니다 while(true)로 작성할 수도 있습니다. 그리고 좀 다른걸로 do-while문이 있는데 이것은 일반적인 while문과는 조금 상이합니다. 문법은 이렇습니다. do{ 실행문; } while(조건) { 실행문; } 위는 do 안의 실행문이 먼저 반드시 한번 실행 되고 난뒤 일반적인 while문을 실행한다고 보시면 됩니다. For문 for문은 while문 보다는 복잡사지만 그 사용 빈도수가 더 많은 반복문입니다. 문법은 다음..
트리를 구성하는 각 노드들을 찾아가는 방법을 운행법이라 합니다 이진 트리를 운행하는 방법은 산술식의 표기법과 연관성을 갖습니다. 트리의 운행법 이진 트리의 운행법은 다음 세 가지가 있다. Preorder 운행 : Root -> Left -> Right 순으로 운행한다. Inorder 운행 : Left -> Root -> Right 순으로 운행한다. Postorer 운행 : Left -> Right -> Root 순으로 운행한다. 수식의 표기법 산술식을 계산하기 위해 기억공간에 기억시키는 방법으로 이진 트리를 많이 사용한다. 이진 트리로 만들어진 수식을 인오더, 프리오더, 포스트오더로 운행하면 각각 중위, 전위, 후위 표기법이 됩니다. 스레드 이진 트리(Threaded Binary Tree) 스레드 이진 ..
이번 시간에는 javascript의 연산엔 대해서 알아보겠습니다. 먼저 JAVA와 비슷하게 연산기호들이 있습니다 >, false는 0의 값을 가지고 있으므로 false가 나오고 console.log(Boolean(b)) -> 문자값이 '' 같이 비어있어야지만 false가 되므로 true입니다. 하지만 아래에서 a와 b라는 변수를 비교했을때 값은 true가 나옵니다. 어째서일까요? 그것은 문자'0'를 숫자 0으로 바꾸어서 비교를 하기 때문입니다. *아마 숫자로 연산하는것이 우선순위가 있지않나 생각이 듭니다. 그리고 주의해야 할점이 undefined 와 null을 ==로 비교했을때 true가 나오지만 ===로 비교했을땐 false가 나옵니다. 자, 이젠 아까 말하다 말았던 ===를 살펴보겠습니다.(stric..