알고리즘
-
6주차. 자료구조알고리즘 2021. 2. 19. 13:08
1) malloc 과 포인터 복습 int *x; => 포인터 x 선언 x = malloc(sizeof(int)); => int 자료형 크기에 해당하는 메모리 할당 *x = 42; => x 포인터가 가리키는 지점에 42를 저장 y = x; 라는 코드를 더해주면, y는 x가 가리키는 곳과 동일한 곳을 가리키게 된다. 2) 배열의 크기 조정하기 일정한 크기의 배열이 주어졌을때, 그 크기를 키우려면 새로운 공간에 큰 크기의 메모리를 다시 할당하고 기존 배열의 값들을 하나씩 옮겨야 한다. 이런 작업은 O(n), 배열의 크기는 n만큼의 실행시간이 소요된다. 3) 연결 리스트: 도입 데이터 구조 : 컴퓨터 메모리를 더 효율적으로 관리하기 위해 새로 정의하는 구조체 메모리 레이아웃, 지도 배열 => 각 인덱스의 값이 ..
-
5주차. 메모리알고리즘 2021. 2. 8. 13:20
1) 메모리 주소 컴퓨터 과학에서는 숫자를 10진수나 2진수 대신 16진수를 많이 사용한다. 다른 방식보다 더 간단하게 나타낼 수 있다. 2^4 가 16이므로 4 bits 씩 두덩어리로 나타나면 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려준다. 컴퓨터는 8개의 비트로 모인 바이트 단위로 정보를 표현하므로 2개읜 16진수는 1byte의 2 진술 변환 되므로 정보 표현에 용이하다. int는 4byte만큼 자리 차지하여 저장 변수의 메모리상 주소를 받기위해서는 '&' 연산자 필요/ %p 프린트 시 '*'를 사용하면 그 메모리 주소에 있는 실제 값을 얻을 수 있다. 2) 포인터 *p라는 포인터 변수에 &n 이라는 값, 즉 변수 n의 주소를 저장 int *p 에서 p앞의 *는 이 변수가 포인터라는 의미이고,..
-
4. 알고리즘알고리즘 2021. 1. 31. 09:39
1) 검색 알고리즘 배열: 한 자료형의 여러값들이 메모리상에 모여 있는 구조 이 값들을 접근할때 배열의 인덱스 하나하나를 접근한다. 선형검색: 처음부터 끝까지 하나씩 증가시키면서 방문하여 그 값이 속하는지 검사합니다. 이진검색: 배열이 정렬되어있다면, 배열 중간 인덱스부터 시작하여 찾고자 하는 값을 비교하여 인덱스로 이동하여 값을 비교한다. 2) 알고리즘 표기법 Big-O : 알고리즘을 수행하는데 필요한 시간의 상한선 O(n) - 선형 검색 O(log n) - 이진 검색 Big Ω는 알고리즘 실행 시간의 하한을 나타내는 것 Ω(n) - 배열 안에 존재하는 값의 개수 세기 Ω(1) - 선형 검색, 이진 검색 예를 들어 선형 검색에서는 n개의 항목이 있을때 최대 n번의 검색을 해야 하므로 상한이 O(n)이 ..
-
2주차. C언어알고리즘 2021. 1. 17. 12:20
1) 기초 #include : 컴퓨터에게 그 함수가 어디에 구현되어 있는지 혹은 어디에 저장되어 있는 지 알려줘야함. stdio.h 라는 이름의 파일을 찾아서 printf 함수에 접근할 수 있도록 해줌 int main(void)는 스크래치의 “초록색 깃발을 클릭했을 때” 블록과 같은 역할을 합니다. 즉 '시작한다'의 의미를 가지고 있다 글자나 단어, 문장을 적을때는 언제나 텍스트에 "" 쌍따옴표로 감싼다. 문장에 마침표를 찍는것 처럼 세미콜론(;)을 만드시 붙여야 한다. \n 는 줄바꿈 기능 : ENTER 과 같은 기능 파일이름.c 로 확장자 붙여서 저장함 우리가 직접 작성한 코드 = 소스코드 2진수로 작성된 코드 = 머신코드 소스코드를 머신코드로 바꿔주는 것을 컴파일러가 수행함 clang hello.c..
-
1주차. 컴퓨팅 사고알고리즘 2021. 1. 11. 17:30
1) 2진법 컴퓨터 과학 : 문제해결에 대한 학문 문제 해결: 입력(input)을 전달받아 출력(output)을 만들어 내는 과정 컴퓨터는 0과 1(이진법)로만 데이터를 표현한다. 하나의 자리수를 표현하는 단위를 비트(bit)라 한다. 비트(bit): 0과 1, 두가지 값만 가질 수 있는 측정 단위, 글 바이트(byte): 8bit 트렌지스터: on/off상태를 통해 0과 1을 표현 2) 정보의 표현 문자의 표현 : 문자를 숫자로 표현할 수 있도록 정해진 표준 이용 ASCII(아스키코드/American Standard Code for Information Interchange) : 문자를 숫자로 표현 Unicode라는 표준에서는 더 많은 비트를 사용하여 더 다양한 다른 문자들도 표현가능 하도록 지원 그림..