일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- homogeneous linear system
- 빅오메가
- 재귀함수
- matrix trnasformations
- 코틀린 Hello World!
- 일차변환
- python
- one-to-one
- NumPy
- solutions of matrix equation
- Big-Oh notation
- Big-Oh 예제
- 랜덤 순서 배열
- Big Omega
- matrix fo a linear transformation
- 배열 섞기
- trivial solution
- itertools
- 코틀린 시작하기
- linear dependence
- Big Theta
- matrix-vector product
- 빅세타
- Big-O 예제
- recursive algorithms
- nontrivial solution
- 이진 탐색
- 빅오 표기법
- 알고리즘 분석의 실례
- nonhomogeneous linear system
- Today
- Total
목록2017/05 (4)
코딩 연습
1. TRY KOTLIN 페이지 이용하기사실 코틀린을 가장 빠르게 시도할 수 있는 방법은 TRY KOTLIN 페이지에 접속하는 것이다. 이 페이지에 접속하면 다음과 같은 화면을 볼 수 있고, 오른쪽 창에 아래 그림과 같은 코틀린 코드를 입력한 후, 오른쪽 위쪽의 Run 버튼을 눌러주면 아래 쪽에서 그 결과를 확인할 수 있다. 2. IntelliJ IDEA 사용하기두 번째 방법은 JetBrains 의 IntelliJ IDEA 를 이용하는 방법이다. IDEA 다운로드 페이지에서 자신의 OS 를 선택한 후에 Community 버전을 다운로드 받고 설치하도록 하자. (community 버전은 무료다.) 설치 후에 실행하면 아래와 같은 창이 나온다. 여기서 Create New Project 를 선택한다. 그럼 다..
주어진 배열에서 특정한 요소 target 을 찾아내는 상황을 가정해 봅시다. 가장 쉽게 떠 올릴 수 있는 방법은 배열의 요소 하나하나와 target 값이 같은지를 순차적으로 모두 비교하는 것입니다. 만약 배열의 크기가 $n$ 이라고 한다면 이 알고리즘의 시간복잡도를 Big-Oh notation을 이용하요 나타낸다면 $O(n)$ 이 되겠죠. 그렇지만 이것보다 훨씬 빠르게 target 을 찾아내는 방법도 있습니다. 우리가 살펴봐야 할 요소들의 개수를 절반으로 줄여가면서 탐색을 하는 것이죠. 이런식으로 탐색하는 방법이 바로 이진 탐색 알고리즘입니다. 다만 이진 탐색(binary search)은 오름 차순으로 정렬된 배열에만 적용할 수 있다는 단점이 있습니다. (앞으로 내용을 보시면 아시겠지만 오름차순으로 정렬..
이전에 알아봤던 Big-Oh Notation 의 실례들을 살펴보자. $O(1)$파이썬의 list 클래스에서는 각 리스트의 길이를 저장하고 있는 변수가 존재하여 리스트 요소 하나하나를 반복적으로 접근하여 세지 않고도 그 길이를 즉각 반환하여 준다. 이런 측면에서 본다면 리스트의 길이를 구하는 것은 $O(1)$ 에 해당된다고 할 수 있다. 또한 파이썬의 리스트는 array-based sequences 로 실행되기 때문에 각각의 요소들은 연속적인 저장 공간에 하나씩 저장이 되고, 이들은 모두 인덱스를 이용하여 직접 접근할 수 있다. 예를 들어, input_data[i] 라고 하면 input_data 라는 리스트의 인덱스 i 인 저장소의 값을 그대로 반환해 준다. 따라서 이것 역시 $O(1)$ 에 해당된다고 할..
프로그램의 실행시간을 흔히 시간복잡도(time complexity)라고 말한다. 알고리즘의 분석에 있어서 이 시간복잡도를 입력 자료의 크기 $n$ 의 함수로 나타내는 것이 일반적이다. 예를 들어, 다음과 같은 파이썬 코드가 있다고 하자. def find_max(input_data): maximum = input_data[0] for element in input_data: if element > maximum: maximum = element return maximum 위의 파이썬 코드는 리스트 형태로 주어지는 input_data 의 요소 중 그 값이 가장 큰 것을 반환하는 함수 find_max 를 나타낸다. 이때 이 코드의 실행시간은 중간에 있는 for-loop 에 가장 큰 영향을 받게 되리라는 것을 ..