[자료 구조와 알고리즘] 시간 복잡도

2023. 5. 15. 22:42·📗 self-study/📗 inflearn

 

 

 

🔥 그림으로 쉽게 배우는 자료 구조와 알고리즘

 

시간 복잡도

 

 

 

 

📍 좋은 알고리즘은 무엇일까?

👉🏻 사용자의 요구에 따라 달라짐 (메모리 사용량, 속도 등)

👉🏻 보통은 속도를 좋은 알고리즘의 척도로 사용함

 

 

 

📍 시간 복잡도

👉🏻 특정 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간

👉🏻 단, 사용자마다 컴퓨터 사양이 다르므로 객관적 평가는 불가능

👉🏻 따라서 단순히 걸리는 시간이 아닌 '코드에서 성능에 많은 영향을 주는 부분(반복문의 수)'로 평가 

 

주어진 배열에서 5를 찾으시오.

[1, 3, 5, 7]

 1) 처음부터 찾는다면?

👉🏻  3번째에 찾게 됨

 

👉🏻 하지만 이도 5가 어디 있느냐에 따라 달라짐(첫 번째에 찾을 수도 있고, 최악의 경우 배열의 길이만큼 걸림)

 

 

 

 

📍 표현법

👉🏻 Big-Ω[빅 오메가] 최선의 경우

👉🏻 Big-O[빅오] 최악의 경우: 가장 많이 사용됨

 

O(n^2)

👉🏻 Big-θ[빅 세타] 평균의 경우

 

 

📍 빅오 알고리즘

 

최악의 경우는 찾는 데이터가 배열의 끝에 있을 때

[1, 3, 7, 5]

 

👉🏻  일차함수의 모양(/)으로 데이터가 많아지며 그에 비례해서 계산량이 많아짐(선형시간 알고리즘)

 

👉🏻 입력이 n이라면, 최악의 경우 n번 만에 데이터 찾음

 

👉🏻  O(n)

 

 

 

📍 상수시간 알고리즘

👉🏻 입력의 크기에 상관없이 상수의 시간이 걸림 O(1)걸림

👉🏻 입력의 크기에 상관없이 100번의 시간이 걸려도 상수이기 때문에 O(1)로 표현

 

 

 

 

 

 

 

👉🏻 왼쪽으로 갈수록 최악

 

👉🏻 성능을 말할 때는 이 중 하나로 표현

 

 

📍 빅오 표현법 특징

👉🏻 입력이 늘어날 때 계산량이 늘어나는 척도를 나타내기 위한 것

👉🏻 n^2 + 2n + 100을 표현하고자 할 때는 n^2이 가장 많은 영향을 미치므로 O(n^2)로 표시함

👉🏻 3n^2+100은 가장 큰 항을 표시하되, 상수는 큰 의미가 없으므로 3을 버리고 O(n^2)로 표시함

 

저작자표시 비영리 변경금지 (새창열림)
'📗 self-study/📗 inflearn' 카테고리의 다른 글
  • [자료 구조와 알고리즘] 스택(Stack)과 큐(Queue)
  • [자료 구조와 알고리즘] 연결리스트(Linked list)
  • [자료 구조와 알고리즘] 자바스크립트 실행 환경 구축과 배열
  • [자료 구조와 알고리즘] 자료 구조와 알고리즘이란?
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[자료 구조와 알고리즘] 시간 복잡도
상단으로

티스토리툴바