정렬

Study/C#, Winform

[C# Winform] PropertyGrid 에서 DisplayName 우선순위

class PropData { [Category("Cell Information")] [DisplayName("Width")] public int Width { get; set; } = 0; [Category("Cell Information")] [DisplayName("Height")] public int Height { get; set; } = 0; [Category("Cell Information")] [DisplayName("Target X")] public double TargetX { get; set; } = 0.0; [Category("Cell Information")] [DisplayName("Target Y")] public double TargetY { get; set; } = 0.0;..

Study/C언어

처음하시는 분들을 위한 C언어 기초강의 시즌2 - 44 [정렬 알고리즘(셀 정렬, Shell sort)]

제 44강) 정렬 알고리즘 - 셀 정렬 오늘은 정렬 알고리즘의 마지막 시간으로 "셀 정렬(Shell sort)"에 대해서 알아봅니다. 셀 정렬은 삽입 알고리즘을 보완한 알고리즘입니다. 셀 정렬이란 (사진 출처 : 위키백과 - 셸 정렬) 셀 정렬은 "Donald Shell(도널드 셀)"이 고안해낸 알고리즘으로 삽입 정렬을 보완한 알고리즘입니다. 먼저 데이터를 여러 분류로 나누어 삽입정렬을 진행합니다. 요런식으로 일정 구간을 정하여 각각의 분류(그룹)를 만들어서 해당 분류 내에서 정렬을 시킵니다. 위에서 3개의 분류로 나뉜 값들을 각각 분류를 기준으로 정렬을 시켰습니다. 이렇게 정렬된 배열을 더 낮은 개수의 분류로 나눕니다. 이제 한 번 더 분류를 기준으로 정렬을 시킵니다. 이 정도까지 하면 대략 가장 큰 ..

Study/C언어

처음하시는 분들을 위한 C언어 기초강의 시즌2 - 43 [정렬 알고리즘(힙정렬3 - 힙정렬)]

제 43강) 정렬 알고리즘 - 힙 정렬3 오늘은 정렬 알고리즘의 여섯 번째 시간으로 "힙 정렬"에 대해서 알아봅니다. 드디어 이전에 배운 것들을 가지고 힙 정렬을 시도합니다. 힙(Heap) 정렬이란 힙은 크게 "Max heap"과 "Min heap"으로 나뉩니다. "Max heap"(왼쪽)의 경우에는 가장 큰 요소가 맨 위에 올라와 있고, "Min heap"(오른쪽)의 경우에는 가장 작은 요소가 맨 위에 올라와 있습니다. 이렇게 1차적으로 정렬된 힙에서 맨 위의 요소(부모)를 하나씩 제거합니다. 그리고 맨 마지막 요소를 맨 위로 올립니다. 제거한 요소는 새로운 배열에 하나씩 차곡차곡 쌓습니다. 이렇게 바뀐 힙을 다시 재정렬 합니다. 이렇게 재정렬 되어진 힙에서 다시 맨위의 요소를 제거하여 이 과정을 계속..

Study/C언어

처음하시는 분들을 위한 C언어 기초강의 시즌2 - 42 [정렬 알고리즘(힙정렬2 - 힙,Heap)]

제 42강) 정렬 알고리즘 - 힙 정렬2 오늘은 정렬 알고리즘의 세번째 시간으로 "삽입 정렬"에 대해서 알아봅니다. 기본적으로 삽입 정렬은 배열에서 사용합니다. 오늘은 힙(Heap)에 대해서 알아볼겁니다. 힙(Heap) 이란 힙은 지난 시간에 배운 "이진트리(binary tree)" 중에서도 "완전 이진트리(complete binary tree)"를 기반으로 한 자료구조입니다. 자료 구조 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.[1][2][3] 더 정확히 말해, �� ko.wikipedia.org 힙은 다음과 같은 조건을 만족합..

Study/C언어

처음하시는 분들을 위한 C언어 기초강의 시즌2 - 40 [정렬 알고리즘(퀵 정렬)]

제 40강) 정렬 알고리즘 - 퀵 정렬 오늘은 정렬 알고리즘의 다섯번째 시간으로 "퀵 정렬"에 대해서 알아봅니다. 기본적으로 퀵 정렬은 배열에서 사용합니다. (Quick Sort라고 불립니다.) 퀵 정렬이란 (사진 출처 : 위키 백과 - 퀵정렬) 퀵 정렬은 말 그대로 퀵(Quick), 빠른 정렬입니다. 퀵 정렬은 "분할 정복(Divide and conquer)" 라는 것에 기반한 알고리즘인데요. 말이 어렵지 사실상 합병 정렬의 기본원리를 따릅니다. 퀵 정렬은 "피벗" 이라는 임의의 기준값을 잡게 됩니다. (이 기준값에 따라서 성능이 좌우됩니다.) 이 임의의 값을 기준으로 큰 값은 피벗의 오른쪽으로, 작은 값은 왼쪽으로 정렬하게 됩니다. 여기서 이동된 값을 다시 오름차순 또는 내림차순으로 정렬하기 위해서 ..

Study/C언어

처음하시는 분들을 위한 C언어 기초강의 시즌2 - 39 [정렬 알고리즘(합병 정렬)]

제 39강) 정렬 알고리즘 - 합병 정렬 오늘은 정렬 알고리즘의 네번째 시간으로 "합병 정렬"에 대해서 알아봅니다. 기본적으로 합병 정렬은 배열에서 사용합니다. (Merge Sort라고 불립니다.) (합병 정렬 혹은 병합 정렬이라고 불립니다.) 합병 정렬이란 (사진 출처 : 위키 백과 - 합병 정렬) 합병 정렬은 배열을 계속 쪼개어 최소 단위인 2개일때 선행적으로 정렬을 한 뒤에 다시 합병하여 정렬, 합병하여 정렬을 반복하는 정렬방식입니다. 일단 배열을 원소의 크기가 최대 2개가 될 때까지 쪼갭니다. 이 쪼개지는 과정을 크게 "왼쪽 부분"과 "오른쪽 부분"으로 구분할 수 있습니다. 이렇게 9와 11은 왼쪽으로 2번 나뉘어진 부분이 되고 8은 왼쪽으로 한 번, 오른쪽으로 한 번 나뉘어진 부분이 되며, 2와..

Eskeptor
'정렬' 태그의 글 목록