<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>seungjae_baek.log</title>
        <link>https://velog.io/</link>
        <description>여러가지</description>
        <lastBuildDate>Mon, 01 Feb 2021 14:43:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>seungjae_baek.log</title>
            <url>https://images.velog.io/images/seungjae_baek/profile/e95c149b-4a91-49ce-b25a-c03a8c8bc927/백승재 증명사진.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. seungjae_baek.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/seungjae_baek" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[시간복잡도 (Big - O, Big - Ω)]]></title>
            <link>https://velog.io/@seungjae_baek/%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84-Big-O-Big-</link>
            <guid>https://velog.io/@seungjae_baek/%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84-Big-O-Big-</guid>
            <pubDate>Mon, 01 Feb 2021 14:43:16 GMT</pubDate>
            <description><![CDATA[<h1 id="시간복잡도">시간복잡도</h1>
<p>알고리즘이 얼마나 효율적인가, 얼마나 잘 설계 되었는가를 말할 때
실행 시간, 시간복잡도(Big - O, Big - Ω)에 대해 말한다.</p>
<p>시간복잡도는 마치 어린아이한테 저번에 봤던 곰인형의 크기가 얼마만큼 컸는지 물었을 때
&quot;이~~만했다.&quot; 라고 손으로 은유적으로 그리고 직관적으로 표현함과 같다.</p>
<p><img src="https://images.velog.io/images/seungjae_baek/post/876f28af-3dfe-476d-b873-f175a716f203/%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84.jpg" alt=""></p>
<p>그림의 n과 n/2는 무한대의 case에서는 결국 의미가 없다.
따라서 두 경우 다 O(n)이다. 시간을 손짓과 같이 대략적으로 표현했다고 설명한 부분이 이해가 가는가?
(Big O의 O는 &#39;on the order of&#39; 라고 한다.) </p>
<h1 id="big-o">Big O</h1>
<p>Big O는 알고리즘 실행 시간의 상한, 즉 최악의 경우(worst)를 뜻한다.
예를 들어</p>
<pre><code>1, 2, 7, 1, 9</code></pre><p>위의 행렬이 있다고 생각해보자
9를 선형 검색(linear search)로 찾고싶다면 행렬을 5번 모두 검사해야 할 것이다.
즉, O(n)이다. 
빠르면 빠를수록 O(n)의 n대신 더 작은 수가 들어갈 것이고
느리면 느릴수록 n대신 더 큰 수가 들어갈 것이다.</p>
<h1 id="big-ω">Big Ω</h1>
<p>Big Ω는 알고리즘 실행 시간의 하한,즉 최고의 경우(best)를 뜻한다. 
다시 아까의 예를 보자</p>
<pre><code>1, 2, 7, 1, 9</code></pre><p>위의 행렬에서 1을 선형검색으로 찾고 싶으면 웬일인가 1번만에 찾을 수 있을 것이다.
즉, Ω(1)이다.</p>
<h1 id="누가-더-중요한지">누가 더 중요한지?</h1>
<p>아마도 Big O,Big Ω 둘 다 사용하기에는 귀찮을 것이고 직관성도 떨어질 것이다.
그렇다면 누가 더 중요할까?
경우에 따라 다르겠지만 Big O 일 것이다.
Big Ω의 예시처럼 정말 운이 좋은 경우 한번에 맞출 수 있었는데 
이게 좋은 알고리즘을 뜻할 수 있을까? 그건 아닐 것이다.</p>
<p>위의 정리는 cs50의 week4 알고리즘을 정리한 자료이다.</p>
]]></description>
        </item>
    </channel>
</rss>