{"data":{"site":{"siteMetadata":{"title":"lastrites2018","author":"lastrites2018","siteUrl":"https://lastrites2018.netlify.com","comment":{"disqusShortName":"","utterances":"lastrites2018/gatsby-first-blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"b589e398-f8df-5d67-914b-35144fa83abf","excerpt":"Complexity Analysis In the Real World 컴퓨터 사이언스에서 배우는 이슈 필요성 좋은 코드 효과적인 코드 일반적으로 Time Complexity(시간 복잡도)와 Space Complexity(공간 복잡도) 두 가지가 있다. Space Complexity(공간복잡도)  : 얼마나 많은 메모리나 얼마나 많은 용량을 차지하고 있는가. Time Complexity…","html":"<h2 id=\"complexity-analysis-in-the-real-world\"><a href=\"#complexity-analysis-in-the-real-world\" aria-label=\"complexity analysis in the real world permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Complexity Analysis In the Real World</h2>\n<p>컴퓨터 사이언스에서 배우는 이슈</p>\n<p>필요성</p>\n<ol>\n<li>좋은 코드</li>\n<li>효과적인 코드</li>\n</ol>\n<blockquote>\n<p>일반적으로 Time Complexity(시간 복잡도)와 Space Complexity(공간 복잡도) 두 가지가 있다.</p>\n</blockquote>\n<ul>\n<li><strong>Space Complexity(공간복잡도)</strong> : 얼마나 많은 메모리나 얼마나 많은 용량을 차지하고 있는가.</li>\n<li><strong>Time Complexity(시간복잡도)</strong> : 얼마나 오랜 시간동안 연산을 수행하는가.</li>\n</ul>\n<h2 id=\"왜-중요한가\"><a href=\"#%EC%99%9C-%EC%A4%91%EC%9A%94%ED%95%9C%EA%B0%80\" aria-label=\"왜 중요한가 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>왜 중요한가</h2>\n<p>효과적인 알고리즘이 뭔지, 효과적인 데이터 스트럭처가 뭔지.</p>\n<p>접근방법이 다르다는 게 focus.</p>\n<p>배열은 순서가 있지만, 객체는 순서가 없다! 객체는 순차적으로 iteration 하는게 의미가 없다. tuple, rankedlist(블록체인), q, stack 등 다양한 데이터 구조.</p>\n<p>어떤 코드가 효과적인지 알아보기 위해 측정하는 기준이 바로 complexity.</p>\n<blockquote>\n<p>사이즈가 모든 시간을 대표하진 않는다</p>\n</blockquote>\n<p>Big - O Notation : 근사값으로, 대략적인 Time Complexity를 보여준다.</p>\n<p>Complexity Types</p>\n<p>O(1) O(log n) O(n) O(n제곱) O(c”)</p>\n<p>상수의 제곱으로 가면 정말 느려짐.</p>\n<p>근사값이기 때문에 n제곱 뒤에 붙는 덧셈 따위 무시함.</p>\n<p>Hash table은 object라고 생각하면 됨.</p>\n<ul>\n<li>constant O(1) 1의 복잡도</li>\n</ul>\n<p>ARRAY LOOKUP : 알고 있는 인덱스를 가지고 접근하는 것</p>\n<p>HASH TABLE INSERTION</p>\n<ul>\n<li>\n<p>logarithmic O(log n)</p>\n<p>Example : BINARY SEARCH, divide and conquer : recursion</p>\n</li>\n</ul>\n<p>알아둘 필요가 있다</p>\n<p>log n 번만큼 돔 3번</p>\n<p>element가 7개 바이너리 연산 3번</p>\n<p>Math.log2(7)</p>\n<p>2.8 -> 3번</p>\n<p>무작정 늘어나는게 아니라 log n만큼의 복잡도</p>\n<ul>\n<li>linear O(n)</li>\n</ul>\n<p>Printing the elements in an array.</p>\n<p>모든 엘리먼트 탐색.</p>\n<ul>\n<li>\n<p>quadratic O(n제곱)</p>\n<p>constant time operation inside two nested for-loops. (중첩 for문)</p>\n</li>\n<li>\n<p>exponential</p>\n<p>O(상수c의 n제곱). Excution time increases exponentially</p>\n<p>-> 패스워드 추적하기 힘들게 만들때</p>\n</li>\n</ul>\n<blockquote>\n<p>내가 구현한 것이 어떠한 복잡도를 가진지 알아야 한다.</p>\n</blockquote>\n<hr>\n<p>Complexity Cheat Sheet</p>\n<p><a href=\"http://bigocheatsheet.com/\">http://bigocheatsheet.com/</a></p>\n<p>데이터 자료 구도 보고 어떻게 알아보는지도 볼 필요가 있다.</p>","frontmatter":{"title":"Complexity","date":"August 07, 2018"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/til/20180807 Complexity/","previous":{"fields":{"slug":"/til/20180803 jQuery Css/"},"frontmatter":{"title":"jQuery Css","category":"TIL"}},"next":{"fields":{"slug":"/til/20180807 this review - 5 Patterns of Binding this/"},"frontmatter":{"title":"this review - 5 Patterns of Binding this","category":"TIL"}}}}