분류 전체보기 97

4-2 관계

1. 관계의 개념 ① 관계 - 서로 다른 집합에 있는 원소들 사이의 관련성 - 이항 관계 : 집합 X에서 집합 Y로의 R은 X x Y의 부분집합 ② 곱집합 - 집합 A,B의 곱집합 AxB는 A,B의 원소의 모든 순서쌍 2. 관계의 표현 ① 화살표 도표 ② 부울행렬 - 관계존재 시 1, 존재 안할 때는 0 3. 관계의 성질/역관계/합성관계 ① 관계의 성질 -반사성, 대칭성, 추이 ② 역관계 : 관계 R이 존재할때 R-1 만들 수 있음 - 관계 R의 정의역은 R-1의 치역이 되고 관계 R의 치역은 R-1의 정의역이 된다. - 관계 R의 순서쌍의 앞,뒤 원소를 바꾸면 역관계가 되어 R-1을 나타냄 ③ 합성관계 - R₁은 A->B 관계이고, R₂는 B->C관계일 때 R₂ · R₁는 R₁을 적용한 후 R₂를 적용..

4-1 행렬의 개념

1. 행렬의 개념 ① 행렬 - 행과 열로 구성되는 사각형 형태로 수를 배열한 것 ② 컴퓨터 분야 응용이진 탐색 트리에서의 탐색 - 프로그래밍 언어,자료구조 - 수치해석, 패턴인식 - 컴퓨터 그래픽스 ③ 정의 - 행벡터(Row Vevtor) : 1xn 행렬 - 열벡터(Row Vevtor) : mx1 행 2. 행렬의 연산 ① 행렬의 연산 - 행렬의 곱셈 : 스칼라 곱 & 행렬 곱과 열로 구성되는 사각형 형태로 수를 배열한 것 ② 기본연산 - 행렬의 합, 차, 스칼라 곱 - 행렬의 곱 (AB≠BA) - 가우스 소거 3. 행렬의 종류 ① 정방 행렬 - 행의 수와 열의 수가 같은 nxn 행렬을 n차 정방행렬이라고 함 ② 단위행렬 - n차 정방행렬에서 대각원소가 모두 1이고 나머지 원소는 모두 0인 행렬 ③ 대각행..

4-2 이진 탐색 트리

1. 이진 탐색 트리 ① 이진 탐색 트리 - 데이터 삽입, 삭제, 탐색 등이 자주 발생하는 경우 효율적인 구조 - 이진 트리이면서 같은 값을 갖는 노드가 없어야 함. - 탐색, 삽입, 연산 평균적 시간복잡도 : O(logn) -트리의 높이 ② 이진 탐색 트리에서의 탐색 - 데이터 탐색은 루트에서부터 시작 - if루트 != 찾으려는 데이터: if루트 노드 데이터 찾고자 하는 데이터: go 왼쪽 ③ 이진 트리 탐색에서 재귀적 관점 - 루트 노드 t에서 왼쪽 자식 Left[t]로 분기하는 것은 Left[t]가 새로운 루트가 되었을 뿐 앞의 과정과 똑같은 작업( 재귀적) 2. 이진 탐색 트리에서 삽입 ① 데이터 삽입 - 탐색 성공시, 삽입은 실패..

4-1 순차탐색과 이진탐색

1. 레코드, 키의 정의 및 탐색 트리 ① 탐색 - 기억 공간에 보관 중인 데이터 중에서 원하는 정보를 찾아내는 작업 - 순차 탐색, 이진 탐색 등이 있다. - 적절한 자료구조와 알고리즘의 사용은 효율적인 데이터의 저장과 탐색에서 매우 중요함. - 배열의 경우 데이터가 들어오는 순서대로 쌓아서 저장은 쉽지만, 검색이 번거로움. ② 레코드, 키, 탐색트리 - 레코드 : 개체에 대해 수집된 모든 정보를 포함하고 있는 저장 단위 (행 전체) - 필드 : 레코드에서 각각의 정보를 나타내는 부분(열) - 키 : 다른 레코드와 중복되지 않도록 각 레코드를 대표할 수 있는 필드(ex. 사원번) 키는 필드 하나로 구성할 수도 있고, 두 개 이상의 필드로 구성할 수 있음. - 탐색 트리 : 각 노드 가 규칙에 맞도록 하..

3주 2차 특수한 정렬 알고리즘

1. 힙정렬 ① 힙정렬 - 주여진 배열을 힙으로 만든 후 차례로 하나씩 제거하며 정 ② 힙 정렬 방법 - 주어진 배열을 힙으로 만든 후 가장 작은 값부터 제거하며 힙의 크기 줄여나감. - 정렬은 힙에서 원소들이 제거된 순서대로 함. - 힙에서 최소원소를 제거하고 나서 힙 성질을 만족하도록 수선해주는 과정이 필요 ③ 힙 정렬의 작동 예 - 맨뒤에서 부터 따져서 힙 성질에 문제가 생길 수 있는 지 체크함. - 루트 노드의 원소를 제거하여 다른 곳에 저장하면서 저장 ④ 힙정렬 알고리즘 heapSort(A[],n) #A[1...n]을 정렬한다 { buildHeap(A,n); #힙 만들기 for i 빠름 - 기수 정렬 시간: O(n) ② 기수 정렬 방법 - 정렬하고자 하고자 하는 숫자들을 가장 낮은 자리수 가지고..

3주 1차 효율적인 정렬 알고리즘

1. 쉘정렬 ⓛ 쉘정렬 - 주어진 입력 데이터를 적당한 매개 변수의 값만큼 서로 떨어진 데이터들과 비교하여 교환하는 과정을 매개변수의 값을 바꾸어가며 되풀이하는 것. - 매개변수를 계속 줄여가다가 1(간격)이되면 종료. => 모든 원소를 1개 그룹으로 여길 때(삽입 정렬) end! ② 쉘 정렬 복잡도 - 쉘 정렬 최악의 경우 시간복잡도 O(n²)--> 간격 선정에 따라 좌우됨 ③ 쉘 정렬의 특징 - 임베디드 시스템(가전제품의 프로그램)에 주로 사용(입력크기가 매우 크지 않은 경우에 성능이 좋음). 2. 병합 정렬 ⓛ 병합정렬(Merge Sort) - 정렬할 데이터들을 2개로 나누고 각각 정렬한 후에 다시 병합하여 정렬 완성 mergeSort(A[],p,r) { if (p

3주 2차 구조체와 재귀호출

1. 구조체 개념 ① 구조체 개념 - 여러개의 데이터를 그룹으로 묶어 하나의 자료형으로 정의하고 사용하는 자료형 - 배열은 같은 자료형만을 그룹으로 묶지만, 구조체는 다양한 자료형 그룹으로 묶을 수 있 - 자료를 체계적으로 관리하려면 일정한 단위형식으로 구성해야하는데, 이를 레코드라고 함 - 여러 자료형의 필드를 가지고 있는 레코드 만들 때 구조체를 사용함 ② 구조체의 선언과 사용 #선언형식 Struct 구조체형이름 { 자료형 항목1; 자료형 항목2; ... 자료형 항목n; }; # 사용형식 struct 구조체이름 구조체변수이름; 2. 구조체 연산자 ① 점 연산자 : 구조체 변수의 데이터 항목을 개별적으로 지정할 때 사용 ② 화살표 연산자 : 구조체 포인터 변수에서 포인터가 가리키는 구조체 변수의 데이터..

Module, Classes,Instance

1. Module(모듈) ① 모듈 정의 모듈은 파이썬 정의와 문장들을 담고 있는 파일이다. 모듈은 이미 완성되어 있어 사용자가 가지고와서 그 모듈내의 객체와 객체멤버 사용한다. ② import 예시 import random A=[1,5,6,8,7,6] random.shuffle(A) B=random.choice(A) print(A) #[8, 7, 6, 1, 6, 5] print(B) #8 모듈 내에서, 모듈의 이름은 전역 변수 __name__ 으로 제공된다. import random name=random.__name__ print(name) #random random함수내에 shuffle을 쓰려면 항상 random.shuffle()으로 사용해야하는데, 이것이 불편하다면, 특정함수만 import할 수 있음..

Language/Python 2023.07.04

for/ while

For loop ① for item in list_of_items: #Do something to each item ->리스트의 원소 꺼내오기 fruits =["Apple", "Pear","Orange"] for fruit in fruits: print(fruit) ② for number in range(a,b): print(number) ->수열함수 사용해서 그 범위의 숫자 사용하여 무언가 수행하기 for n in range(1,6): print(n) While ① while something_is_true #Do something repeatdly -> 거짓일 때 멈춤! -> 조건이 거짓이 되지 않으면 무한 반복

Language/Python 2023.07.04

2주 2차 기본적인 정렬 알고리즘

1. 선택정렬 ① 정렬(sorting) : 데이터의 순서를 결정하는 것 ② 내부정렬 : 데이터 양이 적을 때 주기억장치 내에 저장한 자료를 대상으로 정렬하는 방법 - 선택정렬, 버블정렬, 삽입정렬 등 ③ 외부 정렬 : 주기억 장치 공간보다 데이터가 큰 경우 보조기억 장치에 있는 입력을 여러 번 나누어 주기억 장치에 읽어 들인 후 정렬하여 보조 기억 장치에 다시 저장하는 과정 반복 ④ 정렬 알고리즘의 복잡도 - 대부분 O(n2)과 O(nlogn) 사이 - 평균적으로 O(n2)의 시간이 소요되는 정렬 알고리즘 - 선택 정렬, 버블 정렬, 삽입 정렬 ⑤ 선택정렬 (Selection Sort) - 주어진 데이터에서 가장 큰 값이나 가장 작은 값을 찾은 후 그 값만을 교환하는 방식> 단계적으로 정렬 - 입력이 정..