알고리즘?

채상혁·2022년 5월 27일
0

Algorithum이란

어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것이다.

  • 쇼핑몰에서 물품 구매
  • 햄버거 만드는 방법
  • 최단 거리 최단 시간에 집에가는 길을 찾는 것

프로그래밍에서 알고리즘은 정확하고 효율적으로 결과값을 얻기위해 필요하다.

Good 알고리즘의 조건

  • 입력 : 외부에서 자료가 0개 이상 존재한다.
  • 출력 : 적어도 2개 이상의 서로 다른 결과를 내어야 한다. 즉 모든 입력에 하나의 출력이 나오면 안된다.
  • 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.
  • 유한성 : 유한 번의 명령어를 수행 후 유한 시간 내에 종료한다.
  • 효율성 : 모든 과정은 명백하게 실행 가능 한 것이어야 한다.
  1. 시간 복잡도(최악을 가정한 Big O 표기법)
  2. 자료구조
  3. 정렬

시간 복잡도
0(1) :상수형태. n의 값에 상관없이 일정한 양의 계산만 한다.
0(logn) : 로그 형태
0(n) : 선형
0(nlogn) : 선형로그 형태
0(n2),O(n3),.... : 다차 형태
O(2n) : 지수 형태
O(n!) : 팩토리얼 형태

자료구조

데이터 사이의 관계를 반영한 저장구조 및 다루는 연산에 대한 정의
자료구조는 데이터를 효율적으로 사용할 수 있도록 컴퓨터에서 데이터를 효과적으로 저장하고 구성하는 방법을 제공하는 데이터 요소 그룹으로 정의할 수 있다.
SW또는 프로그램의 성능 향상에 중요한 역할을 한다.
출처 - 초보몽키의 개발공부로그

자료구조 형식

  1. 리니어 : 배열, 리스트
  2. 트리 :바이너리, 힙, 공간 분할등
  3. 해시 : 분산 해시 테이블, 해시 트리 등
  4. 그래프 :결정, 지시 ,비순환등

소비자가 더 빠르고 눈으로 확실히 보이는 개선된 것을 원하기 때문에 소비자의 니즈를 충족시키려면 개발자들은 더 효율적이고 성능을 향상시키는 것을 추구한다.

이러할 때 사용하는 것이 자료구조와 알고리즘 적절히 사용하면 소비자가 원하는 데이터까지 접근하는데 걸리는 시간을 획기적으로 줄여준다.

0개의 댓글