Computer Basis/Algorithms
-
[Algorithms] 정렬 알고리즘의 종류와 시간복잡도, 사용처 (+ Java 구현코드)Computer Basis/Algorithms 2021. 11. 8. 22:50
* 구현코드는 제일 아래에 있습니다. * 개념정리는 없습니다 😞 위키 백과가 최고에요,,, # 정렬알고리즘의 종류와 시간복잡도 Sort Best Avg Worst Details Selection Sort (선택정렬) $$O(n^2)$$ $$O(n^2)$$ $$O(n^2)$$ Bubble Sort (버블정렬) $$O(n^2)$$ $$O(n^2)$$ $$O(n^2)$$ Insertion Sort (삽입정렬) $$O(n)$$ $$O(n^2)$$ $$O(n^2)$$ 어느정도 정렬된 데이터에 Best! Quick Sort (퀵정렬) $$O(nlog_{2}n)$$ $$O(nlog_{2}n)$$ $$O(n^2)$$ 대부분 표준라이브러리에서 채택됨 Merge Sort (병합정렬) $$O(nlog_{2}n)$$ $$O(..
-
[Algorithms] 백준 DP 문제모음 (bottom-up 유형)Computer Basis/Algorithms 2021. 11. 1. 20:21
# 이친수 (2193번) 1. 곱셈 연산이나, 덧셈 연산은 큰 수 끼리 연산 수행 시 overflow 가 발생할 수 있음을 유의!!!!! (매우매우 중요) 저번에도 당하고 또 당하는 단골문제... import java.util.Scanner; public class Main{ // not starting with 0 // no serial 1 // how many binary with condition above, on size N // 1
-
[Algorithms] 백준 DP 문제모음 (Top-down 유형)Computer Basis/Algorithms 2021. 10. 30. 16:55
# 포도주 시식 (2156번) 1. Top-down 유형에 익숙해지자... 2. 항상 기본적인 예외 체크를 신경쓰자...!!! (n이 최소,최대 일 때) import java.util.Scanner; public class Main { static int[] drink; static int[] podoJu; //drink(n) : n(마지막) 잔을 마셨을 때 최대로 마시는 양 //case 1 : drink(n) = pick(n-1)+pick(n)+drink(n-3) //n-1 //case 2 : drink(n) = pick(n)+drink(n-2) //n-2 //case 3 : drink(n) = pick(n)+drink(n-3, n-4, ..) //vast jump //case 3 never happe..
-
행렬연산을 위한 자료구조, Tensor, Torch 를 자바로 재구현 해보자!Computer Basis/Algorithms 2021. 10. 14. 13:11
본문은 아직 완성되지 않았음. # 행렬연산을 위한 자료구조 Tensor, Torch - 1차원 배열로 구성되어있다. - offset, strides 의 개념으로 모든 것을 해결 - 전치행렬을 만들때 압도적인 성능 - 행렬의 곱셈연산은 O(n^2) 로 추정 (직접 구현하고 추후 수정예정) # 크기가 n인 정방행렬을 전치행렬로 만들때 Brute-force 시간복잡도 - 3중포문, O(n^3) # Tensor 구조로 전치행렬 시간복잡도 - O(1) - 2차원 배열로 바꿀때, O(n^2) - 데이터 복사 시간 # Tensor.class public class Tensor { public int[] tensor; public int offset; public int[] strides; public int rowL..