지난 포스팅에서 버블 정렬(Bubble Sort)와 선택 정렬(Selection Sort)를 포스팅 해보았습니다. 오늘은 지난 포스팅과 더불어 시간복잡도 O(N2)을 갖는 기초적인 정렬 중 하나인 삽입 정렬(Insertion Sort)에 대해 알아보겠습니다. 삽입 정렬(Insertion Sort) 삽입 정렬(揷入整列, Insertion Sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. *위키백과 참조 위키백과의 설명이 조금은 이해가 가지 않을 수 있기 때문에, 아래 그림을 통해 이해를 돕도록 하겠습니다. 정렬이 안된 초기상태의 배열이 있습니다. 삽입정렬에서는 가장 첫번째 원소는 정렬이 된 상태라고 가..
지난 포스팅에서는 버블 정렬(Bubble Sort) 에 대해 포스팅 해보았습니다. 이번에는 버블 정렬과 함께 기초적인 정렬 방법인 선택 정렬(Selection Sort) 에 대해 알아보도록 하겠습니다. 선택 정렬(Selection Sort) 선택 정렬(Selection Sort)은 제자리 정렬(in-place sorting) 알고리즘 중 하나로 주어진 리스트의 최소값을 찾아 그 값을 맨 앞으로 교체하며 정렬하는 방법입니다. 시간복잡도가 O(N2)으로 상당히 느리지만, 알고리즘이 단순하며 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있습니다. *위키백과 참조 선택 정렬(Selection Sort)은 정렬을 구현할 때 알고리즘을 모르더라도 가장 일반적인 접근방법 중 한가지라고 생각합니다. 그림을 통해 ..
지난번 IntelliJ 설치에 이어서 기본적인 환경 설정을 몇가지 포스팅 해보도록 하겠습니다. 첫 시작은 이러한 화면의 등장입니다. 혹시 다른 화면이라도 상관 없습니다. 그냥 [Create New Project]를 찾아서 누르시면 됩니다. [File] - [New] - [Project...] 아래와 같은 화면에서 Project SDK 에 JDK 경로를 잡아주셔야 합니다. 무료 버전이라 그런지 사실 해보고 싶은 기능은 없어서 사용이 망설여 집니다. ( 쓰게 해줘도 난리 ) 원하는건 스프링 이니셜 라이즈 같은 웹개발 기능인데 말이죠. 하지만 부가적인 기능 사용 전에 기본적인 부분을 다룬다면 작업이 수월할테니 일단 진행해보도록 하겠습니다. NEXT 시작이니까 "Hello World" 찍어줘야죠 저는 현재창에 ..