본문 바로가기

Posts/Algorithm

Posts/Algorithm [누구나 자료구조 알고리즘] Python 버블정렬 💡 Goal - 버블정렬 알고리즘을 이해하기. - 버블정렬 알고리즘을 파이썬으로 구현하기. - 버블정렬 알고리즘 특징을 2가지 이상 말하기. 개념 서로 인접한(연속된) 두 원소를 확인해 정렬하는 알고리즘 인접한 2개의 원소를 확인하여 조건에 맞는 순서로 교환 비교와 교환으로 이루어진 알고리즘 순서(오름차순 기준) 연속된 두 항목을 가리킨 후 비교한다. 두 항목의 값의 크기가 뒤바뀌어 있으면 값을 교환한다. 비교 포인터를 오른쪽 한칸씩 이동한다. 배열의 끝까지 또는 정렬된 항목까지 1~2단계를 반복한다. 특징 장점 구현이 간단하다 단점 순차적으로 확인하기 때문에 크기에 맞지 않는 비교가 일어남 순차적으로 확인하기 때문에 N개의 길이가 있다면 N번 교환이 발생 코드 def bubble_sort(input_l.. 2021. 12. 11. 17:32
Posts/Algorithm 간단하게 정리한 빅오표기법 알고리즘 알고리즘은 어떤 문제를 해결하기 위한 여러 동작들의 모임을 말합니다. 다시 말해 어떤 값을 입력받아 결과 값을 출력하는 절차를 의미합니다. 이러한 문제 해결에 필요한 조건은 다음과 같습니다. 입력 : 0개 이상의 입력(외부) 데이터가 존재해야 한다. 출력 : 1개 이상의 결과가 존재해야 하며 중복되지 않은 2개 이상의 결과가 있어야 한다. 유한성 : 모든 과정 및 명령은 유한한 범위에서 실행과 종료 해야한다. 효율성 : 모든 과정은 명백히 실행 가능한 범위에 있어야 한다. 명확성 : 수행과정은 명확해야 한다. 좋은 알고리즘이란? 좋은 알고리즘이란 처리 시간이 짧고, 사용 메모리가 적은 것을 말합니다. 우리는 두가지 조건을 각각 시간 복잡도, 공간 복잡도라 말합니다. 시간 복잡도는 알고리즘을 수행.. 2021. 10. 4. 18:09
Posts/Algorithm 알고리즘 시작전 알면 좋은 기초 개념 정리 빅오표기법 알고리즘이 얼마나 빠른지에 대한 표시방법입니다. 연산횟수를 기준으로 하기 때문에 속도를 시간단위로 세지 않으며 빅오표기법은 최악의 경우에 대한 기준으로 합니다. 실행 시간 선형시간 계산복잡도 이론상 에서 입력의 길이 n에 대해 특정 알고리즘의 실행시간이 선형의 특징을 가지는 것을 말합니다. 예를 들어 100의 길이를 가진 원소를 단순탐색으로 자료를 확인한다면 100번의 횟수를 확인해야 하고 이때 걸리는 시간을 선형시간이라 말합니다. 로그시간 정렬된 리스트를 이진탐색 사용시 원소의 log2N번의 횟수로 자료를 찾을 수 있습니다. log28 -> 3회, log232 -> 5회, log21024 -> 10회 이진탐색의 경우 로그시간으로 실행됩니다. 알고리즘 속도 알고리즘의 속도는 시간이 아니라 연산.. 2021. 10. 4. 17:47