해시 테이블(hash table) 대부분의 프로그래밍 언어는 해시 테이블(hash table)이라는 자료 구조를 포함한다. 빠른 읽기라는 놀랍고 엄청난 장점이 있고, 해시, 맵, 해시 맵, 딕셔너리, 연관 배열 등의 이름을 갖는다. 다음은 해시 테이블을 사용해 파이썬으로 구현한 메뉴이다. (파이썬에서는 딕셔너리라 부른다.) menu = { "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5 } 쌍으로 이루어져 있으며, 첫번째 항목을 키(key)라 부르고, 두 번째 항목을 값(value)이라 부른다. 파이썬에서는 다음과 같은 문법으로 키의 값을 룩업할 수 있다. print(menu["two"]) # 2 해시 테이블의 값 룩업은 딱 한단계만 걸리므로 평균적..
분류 전체보기
이전의 포스팅에서 버블 정렬과 선택 정렬을 알아보았는데, 둘 다 효율성은 O(N2)이지만 선택 정렬이 실제로는 두배 더 빠르다는 것을 알 수 있었다. 이번에는 삽입 정렬(insertion sort)을 배우면서 최악의 경우가 아닌 다른 시나리오를 분석하는 것에 중점을 두고 어떠한 장점이 있는지 알아 보겠다. 삽입 정렬의 수행 순서 삽입 정렬을 수행 할 배열은 [2, 4, 7, 1, 3] 이다. 먼저 loop1이다. 먼저 인덱스 1의 값을 확인한다. 임시로 인덱스1(값2)를 삭제한 후 temp_value 변수에 저장한다 인덱스 - 1(값4)와 비교한다. 4가 2보다 크므로 4를 오른쪽으로 쉬프트 한다. 더이상 비교할 인덱스가 없으므로 temp_value를 -1인덱스에 삽입한다. 첫번쨰 루프의 결과는 [2, ..
DCL(Data Control Laguage)란 데이터베이스 사용자에게 권한을 부여 및 회수하는 언어이다. GRANT 사용자에게 접속권한, 오브젝트 생성 등을 부여할 수 있는 명령어 이다. REVOKE 사용자에게 부여한 권한을 다시 회수하는 명령어이다. 권한의 종류 SELECT, INSERT, UPDATE, DELETE, REFERENS, ALTER, INDEX, ALL 등이 있다. 먼저 권한부여 및 회수를 하는 방법이다. GRANT 권한 ON 테이블 TO 유저; REVOKE 권한 ON 테이블 TO 유저; 한 유저가 컬럼을 업데이트 하고 싶어 한다. 그에 맞는 권한을 부여해보자. GRANT SELECT, UPDATE ON 테이블 TO 유저; UPDATE 문과 WHERE문을 사용하기 위해 SELECT, U..
DDL이란 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어이다. CREATE 데이터베이스 상의 테이블 구조를 생성한다. CREATE TABLE INFO( 이름 varchar2(10), 생년 number(40) default 9999, Phone varchar2(15) not null, 첫방문일 date, 고객번호 varchar2(10) primary key ); 컬럼명은 영문, 한글, 숫자의 조합이 가능하다. 컬럼명의 시작은 문자로만 가능하다. 데이터타입 varchar2 : 가변길이 문자열 char : 고정된 길이 만큼의 문자를 채운다 date : 날짜형 number : 숫자형 DDL 종류 CREATE : 구조생성 ALTER : 구조 변경 DROP : 구조 삭제 RENAME : 이름변경..