인프런 - 강의/1 - 지구에서 제일 쉽게 설명한 자료구조 알고리즘 15

2-2 bubble sort 구현, big O

버블소트의 구현과, 빅오에 대해 알아보겠습니다. 아래와 같이 코드로 한번 구현해봤습니다. 얘의 출력 과정을 알아보면 아래와 같이 찍힙니다. 처음 버블 소트를 봤다면, 머리속에서 코드가 출력되는 부분이 시뮬레이션 잘 안될 수 있습니다. 아래의 출력물을 참고하시면 더 좋을 듯 합니다. ----------- i = 0 j = 0 list[j] = 64 list[j+1] = 34 j = 1 list[j] = 64 list[j+1] = 25 j = 2 list[j] = 64 list[j+1] = 12 j = 3 list[j] = 64 list[j+1] = 22 j = 4 list[j] = 64 list[j+1] = 11 j = 5 list[j] = 64 list[j+1] = 90 ----------- i = 1 ..

2-1 bubble sort 원리

처음으로 해볼 정렬은 버블 정렬 bubble sort 입니다. 버블 정렬하면 저는 현아의 퍼블팝밖에 생각이 안나네요... https://www.youtube.com/watch?v=bw9CALKOvAI 자, 버플팝이 중요한게 아니라 버블 정렬을 해보겠습니다. 버블 정렬의 이론은, 옆에 있는 원소와 비교해서 정렬해주는 알고리즘입니다. 거품이 비비듯이 움직인다고 해서 버블소트라는 이름을 가지고 있는 것으로 알고 있습니다. 오른쪽에 있는 애가, 왼쪽에 있는 애보다 작으면, 위치를 바꿔줍니다. 예를 들면, 아래와 같은 애들을 순서대로 정렬하고 싶은데, 버블 소트를 이용해서 한번 해 보겠습니다. 과정들을 쭉 지켜보시면 버블 소트가 어떻게 동작하는지 알 수 있을 겁니다. 일단 1라운드 이렇게 앞의 2개 비교해서 바꿔..

1-3 빅오표현법 Big - O notation

알고리즘 성능 분석할 때, 빅오표현법(Big-O notation)이라는 것을 사용합니다. 모든 개발자들이 코드를 짤 때, 코드가 빨리 실행이 되는 것을 원하겠죠? 빠르게 실행되는 알고리즘을 짜기 위한 시간 측정 방법입니다. 빅오에 대해 처음 들어보시는 분들은 이해가 잘 안되실 수도 있으니 아래의 예시를 들어 놨습니다. 위의 코드를 보면 big_o1 이라는 애를 실행하면, 연산이 딱 1번 됩니다. 때문에 이 아이의 시간복잡도 big-0는 O(1) 입니다. 아래 코드도 또 보겠습니다. 위의 big_oN이라는 함수는 arr라는 것의 크기 만큼 실행되기 때문에 얘의 big-o는 O(N)입니다. 또 여기에 중첩반복문을 통해서 O(N * N) 즉 O(N^2) 을 아래와 같이 만들 수도 있습니다. 그리고 여러가지 정..

1-2 자료구조와, 알고리즘은 무엇인가?

자료구조와 알고리즘에 대한 정의부터 하고 가겠습니다. 일단 위키에서는 이렇게 설명하고 있습니다. 자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.[1][2][3] 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.[4] 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상 자료형의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. (출처 - https://ko.wiki..

1-1 지구에서 제일 쉽게 설명한 자료구조 & 알고리즘

지구에서 제일 쉽게 설명한 자료구조와 알고리즘 개요 설명드리겠습니다. 강의를 찍게 된 계기는, 저도 기술면접을 볼 일이 있을까봐 예전에 공부했던 자료구조를 복습하던 도중에 다들 너무 어렵게 설명하고 정리해놓은 느낌이라, 제가 좀 쉽게 정리하면서 강의를 찍어보았습니다. 뭔가 이렇게 하니깐 당연히 이렇게 돌아갑니다. 쉽죠? 이런느낌으로 설명하는 자료들이 많아서... 이번 강의에서는 간단한 자료구조와 알고리즘에 대한 개요를 설명드리고 여러가지 sorting 방법에 대해서 많이 다룰 것입니다. 상세 목차는 아래와 같고 1-1 강의소개 1-2 자료구조와, 알고리즘은 무엇인가? 1-3 빅오표현법 Big - O notation 2-1 bubble sort 원리 2-2 bubble sort 구현, big O 3-1 I..