기타(이론)/알고리즘(5)
-
[Binary Search Tree]
Binary Search Tree 부모 노드를 기준으로, 왼쪽 자식들은 부모 노드보다 값이 작으며, 오른쪽 자식 노드들은 부모 노드보다 값이 크다! 기본적인 Node java 코드package binaryTree;public class Node { private int key; private String data; private Node left; private Node right; private Node parent; public Node(int k, String d) { key = k; data = d; left = null; right = null; } public String getData() {return data;} public int getK..
2024.11.24 -
알고리즘의 복잡도
Binary Search더보기θ(logn)Factorial더보기O(n)X^n더보기O(n)피보나치더보기T(n) MergeSort더보기T(n)=2T(n/2)+nθ(nlogn)하노이 타워더보기T(n)=T(n-1)+1+T(n-1)T(n)=2^n-1SelectionSort더보기T(n)=O(n^2)BubbleSort더보기O(n^2)InsertionSort더보기O(n^2)QuickSort더보기O(n^2)HeapSort더보기O(nlogn)Build-Max-Tree더보기O(nlogn), 운 좋으면 O(n)Hybrid Approach (Quicksort와 Insertion Sort의 결합)더보기O(n log n) 평균 시간 복잡도: O(n log n)최악의 경우 시간 복잡도: O(n log n) (피벗 선택을 무작위화하..
2024.10.25 -
T(n)
T(n): 크기가 N인 입력에 대해 정렬이 수행하는 원소 비교 횟수알고리즘의 실제 실행 시간,입력에 따라 몇 번의 연산이 이루어지는지 정확하게 계산한 값 O(n): 알고리즘의 성능을 입력 크기 n에 대한 상한으로 설명만약 어떤 알고리즘이 T(n) = 3n + 2와 같은 실행 시간을 가진다면, O(n)은 상수 항목을 무시하여 O(n) = n이 됩니다.[ 퀵정렬 ] 최선의 경우: 피벗이 매번 입력을 1/2씩 분할하는 경우T(n) = 2T(n) + cNT(1) = c'으로 합병정렬의 최선의 수행시간과 동일평균의 경우: T(n) = O(NlogN)최악의 경우: 피벗이 매번 가장 작을 경우 또는 가장 클 경우T(n) = T(n-1) + n-1, T(1) = 0T(n) = n * (n - 1) / 2 = O(n^2)
2024.10.01 -
[파이썬] Pandas Library
넘파이 기초 판다스 시리즈 생성 자료구조 Series NumPy를 기반으로 만들어진 1차원 데이터를 위한 자료구조 DataFrame NumPy를 기반으로 만들어진 2차원 데이터를 위한 자료구조 # 임포트 방식 from pandas import Series, DataFrame import pandas as pd pd.Series() pd.DataFrame() Series 객체 생성 Series 속성 인덱싱과 슬라이싱 Series 슬라이싱 Series 추가/삭제/수정 값 추가 Series 연산 DataFrame 생성
2023.09.03 -
[순환] 멱집합(Powerset)
멱집합 어떤 집합 A에 대하여 A의 모든 부분 집합들로 이루어진 집합을 A의 멱집합이라고 한다. Mission: S의 멱집합을 출력하라 powerSet(s) if S is an empty set print nothing; else let t be the first element of S; find all sudsets of S-{t} by calling powerSet(S-{t}); print the subsets; print the subsets with adding t; 위 방법은 여러개의 집합들을 return해야 한다. 따라서 Recursion을 이용하면 powerSet(P, S) //S의 멱집합을 구한 후 각각에 집합 P를 합집합하여 출력하라 if S is an empty set print P; ..
2023.07.22