전체 글 126

[병합 정렬] Merge Sort - Python

병합 정렬 Merge Sort Merge Sort 시간복잡도는 Worst - O(NlogN), Average - O(NlogN), Best - O(NlogN) Merge Sort의 경우 원래 리스트의 크기만큼의 추가공간이 필요하다. 입력 Data의 크기가 클 경우 Overhead가 증가할 수 있다. Divide & Conquer 단계를 수행하므로 시간 복잡도는 LogN이다. Merge Sort는 3단계로 구성된다. 각 리스트를 절반으로 나누는 Divide 단계 나눠진 리스트를 정렬하는 Conquer 단계 정렬된 리스트를 하나로 합치는 Combine 단계 def merge_sort(data): result = [] # 중간 index 구하기 mid = (len(data))//2 # 재귀 종료 조건 if l..

알고리즘 2020.12.24

[선택정렬, 삽입정렬] - Selection Sort, Insertion Sort (Python)

선택, 삽입 정렬 특정값 index를 찾는 알고리즘 find_index() : List 안에 있는 값을 찾아서 해당 위치를 반환해주는 함수 def find_index(list_, var): res_index = -1 for i in range(len(list_)): if list_[i] == var: res_index = i break return res_index data = [24, 10, 3, 8, 33, 27, 46] print(find_index(data, 8)) Selection Sort 시간복잡도는 Worst - O(N^2), Avgerage - O(N^2), Best - O(N^2) for문을 돌며 가장 작은 값을 찾아 0번째부터 바꿔나간다. for문을 2번 돌아야 한다. i==0부터 li..

알고리즘 2020.12.23

메모리 구조 - 스태틱, 스택, 힙 영역

코드 영역과 데이터 영역 메모리 공간은 코드 영역과 데이터 영역으로 분리됨 Static, Stack, Heap 영역 데이터 영역은 다시 Static, Stack, Heap영역으로 분리됨 Static 영역은 클래스가 저장되는 공간 클래스 멤버 변수가 할당되며 JVM이 종료될때까지 존재한다. Stack 영역은 메소드가 저장되는 공간 메소드로 넘겨 받은 매개변수, 메소드 안의 지역변수가 할당된다. Stack Frame이 소멸 시 지역 변수도 같이 소멸된다. Heap 영역은 객체가 저장되는 공간 객체 멤버 변수가 할당된다. 객체는 사용되지 않을 경우 가비지 컬렉터에 의해 소멸된다. 객체 소멸시 Heap에 저장된 객체 멤버 변수도 같이 소멸된다. 자바 코드 실행 과정 자바 실행 환경이 프로그램의 main() 메서..

[재귀] Recursion - Python

재귀 사용하기 1. Factorial 구하기 - Factorial(5) = 1*2*3*4*5 - Factorial을 for문과 재귀로 구현 def factorial(n): res = 1 for i in range(1,n+1): res = res*i return res print(factorial(10)) # 재귀로 구현하기 def factorial(n): if n == 1: return 1 else: return n*factorial(n-1) print(factorial(3)) print(factorial(5)) print(factorial(10)) 2. 최대공약수 구하기 - 두 수 a,b 중 작은 것으로 나누어 떨어지면 그 수가 최대공약수 - 나누어 떨어지지 않으면 작은 수를 1씩 감소시킨 값으로 a,..

[파이썬 기초] - List, Set (Python)

파이썬 기초 자료구조와 알고리즘 1. 1부터 n까지의 연속한 숫자의 합을 구하는 알고리즘 방법 1. def sum_n(n): sum = 0 for i in range(1, n+1): sum = sum + i return sum print(sum_n(10)) 방법 2. def sum_n(n): return n*(n+1)/2 print(sum_n(10)) 2. 최대값 구하는 알고리즘 : List 자료구조 - len(a), append(x), insert(i,x), pop(i), clear(), x in a def find_max(list_): max = -2147000000 for data in list_: if max < data: max = data return max list_ = [10, 5, 8, ..

📈Regression 중고차 거래가 예측하기

📊데이터 전처리 및 시각화 Kaggle에 있는 데이터로 중고차 거래가를 예측하는 프로젝트를 해보았습니다. https://www.kaggle.com/adityadesai13/used-car-dataset-ford-and-mercedes 사용한 라이브러리는 Scikit-learn, Pandas, Numpy와 시각화 라이브러리인 Matplotlib, Seaborn, Plotly를 사용하였고 실행환경은 Colab에서 진행하였습니다. 우선 여러 개의 파일을 UK_car.csv라는 하나의 파일로 합쳐 주었습니다. import pandas as pd import numpy as np import dill as pickle import matplotlib.pyplot as plt import plotly.express..