본문 바로가기

프로그래밍/알고리즘8

[C언어 알고리즘] 정렬(2) - 선택정렬 (Selection sort) 선택정렬은 가장 간단한 정렬 알고리즘입니다. 실생활 속에서 가장 많이 사용하는 예를 들자면, 카드패 정렬입니다, 카드 뭉치에서 가장 작은 숫자 카드를 맨앞에 놓고 그 다음 작은 숫자카드를 놓고 ...의 작업을 반복하여 정렬하는 방법을 선택정렬 이라고 합니다. 선택정렬 알고리즘 이번 포스팅에서는 문자형 배열을 정렬하는 것으로 해보겠습니다. 의사코드(Pseudo code)를 적어보면 다음과 같습니다. 1. i =0 2. i 가 n-2 이면 끝난다. 2-1. 배열의 i항 부터 n-1항까지 중 최솟값을 찾아 min에 저장한다. 2-2. 배열의 i항과 min항을 교환한다. 2-3. i를 1 증가시키고 2로 돌아간다. 다음과 같은 문자형 배열이 있다고 가정해 봅시다. 첫 번째 수행은 아래와 같습니다. 가장 먼저 첫.. 2020. 7. 7.
[C언어 알고리즘] 정렬(1) - 개요 알고리즘에 대한 첫번째 포스팅으로 정렬(Sort)을 선택했습니다. 정렬(Sort)은 컴퓨터를 통해 문제해결을 하는데 역사와 함께 했으며, 가장 연구가 많이 되어 왔습니다. 정렬의 기본 개념은 매우 간단한데요, 바로 "줄을 서시요~" 입니다. 줄을 세울 대상을 자료(Data) 라 하고 줄을 세울 기준을 키(Key)라고 합니다. 예를 들어, 학생 20명인 반에서 번호 순으로 일렬로 서라고 한다면 학생들이 데이터, 번호가 키가 되겠죠. 번호가 작은 학생 부터 줄을 선다면 오름차순(Ascending order), 번호가 큰 학생부터 줄을 선다면 내림차순(Decending order)라고 합니다. 정렬 알고리즘의 구분은 구현의 복잡도에 따라 알고리즘이 간단한 선택정렬(Selection sort), 삽입정렬(Ins.. 2020. 7. 7.