코딩/알고리즘 3

2. 정렬 알고리즘(1)

2. 삽입정렬 삽입정렬은 적절한 위치에 삽입하는 방법으로 정렬한다. 버블정렬과 비슷하면서도 조금 다른데, 삽입정렬은 기준점을 주어서 그 값이 어디로 움직여야 하는지를 정하는것으로 이해하는 것이 편하다. 이렇게 나열된 숫자들이 있을때 순서대로 나열하려고 하면 이렇게 앞의 2를 1과 3 사이로 넣어주면 정렬이 끝난다. 이는 하나의 숫자를 모든 숫자들과 비교해서 적절한 위치에 배치하는 방법이다. 이전과 같이 C언어로 [1, 10, 5, 4, 3, 9, 6, 8, 7, 2] 을 삽입정렬을 통해 순서대로 배열하였다. 이 방법은 삽입정렬의 개념을 들었을때 스스로 작성해본 코드로 확실한지, 오류가 있을지는 확실하지 않다. 단지 위 배열을 정확하게 배열하고 개념에 맞는 프로그래밍을 했다고 생각해서 예시로 올린다. 설명..

코딩/알고리즘 2019.06.10

2. 정렬 알고리즘

알고리즘을 공부할 때 가장 먼저 시작하는게 정렬 알고리즘이다. 이유는 정렬 알고리즘만큼 알고리즘의 효율성 차이를 보여주는 것이 드물기 때문이다. 정렬 알고리즘은 데이터를 비교해서 원하는 순서대로 나열하는데 사용되는 알고리즘이다. 정렬 알고리즘에는 다양한 알고리즘이 있지만 기본적인 알고리즘 3가지을 가지고 효율성을 알아보자 1. 버블 정렬 버블 정렬은 나열된 두 값을 비교해서 원하는 순서로 바꾸는 것을 의미한다. 위와 같이 나열된 숫자들이 있을 때 이렇게 두자리씩 비교해서 작은건 앞으로 큰건 뒤로 옮기면 1234로 나열할 수 있다. 이와 같이 연속된 두자리를 비교해서 순서를 바꾸는 정렬이 버블 정렬이다. c 언어을 이용하여 [1, 10, 5, 4, 3, 9, 6, 8, 7, 2] 을 작은 순서대로 배열하는..

코딩/알고리즘 2019.06.07

1. 알고리즘의 개요

알고리즘이란 ' 문제를 해결하는 절차' 이다. ▷ 알고리즘은 입력, 출력, 명확성, 유한성, 효과성을 만족해야 한다. ▷ 알고리즘은 분석을 통해 좋고 나쁨을 평가할 수 있다. ▷ 알고리즘은 문제를 해결하는 방법이지만 보통 컴퓨터 프로그래밍에 사용된다. ▷ 알고리즘은 논리적이여야 하며 실질적인 개발에 적용되는 기초적인 아이디어이다. 알고리즘은 실제 개발의 전체 과정에서 사용된다. ◇ 알고리즘은 개발의 시작부터 전체 과정을 진행하는 개요도이다. ◇ 알고리즘을 통해 과정을 구하고 프로그래밍 언어를 통해 진행된다. 알고리즘은 프로그래머에게 기본이 되는 토양이자 프로그래밍 실력의 기본이다. ○ 실제 개발 과정에서는 고난이도의 알고리즘은 거의 사용되지 않는다. ○ 기업에서 알고리즘 문제를 내는 이유는 그 문제를 해..

코딩/알고리즘 2019.06.06
728x90