[알고리즘, C] 병합 정렬(Merge Sort)의 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[MergeSort.c] /* * 알고리즘 - 병합 정렬(Merge Sort) * 파일명: MergeSort.c * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-26 * 이전 버전 작성 일자: * 버전 내용: 간단한 병합 정렬 구현 * 이전 버전 내용: */ #include #include // 병합 과정 void MergeTwoArea(int arr[], int left, int mid, int right) { int front_Idx = left; // 첫 번째 인덱스(가장 왼쪽) int rear_Idx = mid + 1; // mid(중간)의 바로 다음 -> 오른쪽의 맨 첫 번째 인덱스 int i; int* sortArr = (int*)malloc(sizeof..
[알고리즘, C] 힙 정렬(Heap Sort) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
https://sevenshards.tistory.com/9 [자료구조, C] 배열 기반의 힙(Heap) 구현 [Heap.h] /* * 비선형 자료구조 - 배열 기반의 힙(Heap) * 파일명: Heap.h * 파일 버전: 0.2 * 작성자: Sevenshards * 작성 일자: 2023-11-24 * 이전 버전 작성 일자: 2023-11-24 * 버전 내용: 우선 순위 판단 기준을 힙에 sevenshards.tistory.com 이전에 작성했던 힙을 이용하여 정렬을 수행. 그래서 기존에 작성했던 Heap.h, Heap.c를 이용하였다. [HeapSort.c] /* * 알고리즘 - 힙 정렬(Heap Sort) * 파일명: HeapSort.c * 파일 버전: 0.1 * 작성자: Sevenshards * 작..
[알고리즘, C] 삽입 정렬(Insertion Sort) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[InsertionSort.c] /* * 알고리즘 - 삽입 정렬(Insertion Sort) * 파일명: InsertionSort.c * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-26 * 이전 버전 작성 일자: * 버전 내용: 간단한 삽입 정렬 구현 * 이전 버전 내용: */ #include void InsertionSort(int arr[], int n) { int i, j; int insertData; for (i = 1; i 첫 번째 요소는 데이터가 정렬이 되었다고 보기 때문 { insertData = arr[i]; // 정렬 대상을 별도로 저장 for (j = i - 1; j ..
[알고리즘, C] 선택 정렬(Selection Sort) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[SelectionSort.c] /* * 알고리즘 - 선택 정렬(Selection Sort) * 파일명: SelectionSort.c * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-26 * 이전 버전 작성 일자: * 버전 내용: 간단한 선택 정렬 구현 * 이전 버전 내용: */ #include void SelectionSort(int arr[], int n) { int i, j; int maxIdx; // 우선 순위가 가장 높은 인덱스 값 int temp; for (i = 0; i < n - 1; i++) { maxIdx = i; // 인덱스 값은 i로. 맨 처음이라면 0부터 for (j = i + 1; j < n; j++) { if (arr[j] < arr[ma..
[알고리즘, C] 버블 정렬(Bubble Sort) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[BubbleSort.c] /* * 알고리즘 - 버블 정렬(Bubble Sort) * 파일명: BubbleSort.c * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-26 * 이전 버전 작성 일자: * 버전 내용: 간단한 버블 정렬 구현 * 이전 버전 내용: */ #include void BubbleSort(int arr[], int n) { int i, j; // 반복문에 쓰일 변수 i, j int temp; // 변수 swap에 사용할 임시 변수 for (i = 0; i < n - 1; i++) // 데이터가 n개라면 n-1만큼의 반복을 수행하여 정렬 진행 { for (j = 0; j < (n - i) - 1; j++) // 교환이 이뤄지는 부분. 정렬되어 가면..
[자료구조, C] 힙을 이용한 우선순위 큐(Priority Queue) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[PriorityQueue.h] /* * 비선형 자료구조 - 힙(Heap) 기반의 우선순위 큐(Priority Queue) * 파일명: PriorityQueue.h * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-24 * 이전 버전 작성 일자: * 버전 내용: 힙을 기반으로 한 우선순위 큐 구현 * 이전 버전 내용: */ #ifndef __PRIORITY_QUEUE_H__ #define __PRIORITY_QUEUE_H__ #include "Heap.h" typedef Heap PQueue; // Heap을 PQueue라고 별칭 부여 typedef HData PQData; // HData를 PQData라고 별칭 부여 // 우선 순위 큐 초기화 void PQueueI..
[자료구조, C] 배열 기반의 힙(Heap) 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[Heap.h] /* * 비선형 자료구조 - 배열 기반의 힙(Heap) * 파일명: Heap.h * 파일 버전: 0.2 * 작성자: Sevenshards * 작성 일자: 2023-11-24 * 이전 버전 작성 일자: 2023-11-24 * 버전 내용: 우선 순위 판단 기준을 힙에 설정할 수 있도록 함수 포인터로 변경 * 이전 버전 내용: 간단한 힙의 구현 */ #ifndef __HEAP_H__ #define __HEAP_H__ #define TRUE 1 #define FALSE 0 #define HEAP_LEN 100 typedef char HData; // 힙에 저장될 데이터를 HData라고 별칭 typedef int PriorityComp(HData d1, HData d2); // 힙에서 사용될 우선..
[자료구조, C] 수식 트리의 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[ExpressionTree.h] /* * 비선형 자료구조 - 수식 트리 (이진 트리의 응용) * 파일명: ExpressionTree.h * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-24 * 이전 버전 작성 일자: * 버전 내용: 수식 트리 구현 및 계산 결과 프로그램 작성 * 이전 버전 내용: */ #ifndef __EXPRESSION_TREE_H__ #define __EXPRESSION_TREE_H__ #include "BinaryTree.h" // 수식 트리도 이진 트리의 일종. BTreeNode* MakeExpTree(char exp[]); // 수식 트리 구성 int EvaluateExpTree(BTreeNode* bt); // 수식 트리를 이용한 계산..
[자료구조, C] 양방향 연결 리스트 기반 이진 트리 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[BinaryTree.h] /* * 비선형 자료구조 - 연결 리스트 기반 이진 트리 * 파일명: BinaryTree.h * 파일 버전: 0.2 * 작성자: Sevenshards * 작성 일자: 2023-11-23 * 이전 버전 작성 일자: 2023-11-23 * 버전 내용: 전위, 중위 순회 추가 및 순회 시 할 일을 결정할 수 있도록 함수 포인터 사용. * 이전 버전 내용: 중위 순회 기능까지 포함한 이진 트리 구현. */ // 저자의 표현을 빌리자면, 이진 트리를 구현"할 수 있는 도구"를 만드는 과정이다. // 어디다 갖다 쓸 것인가는 나중에 생각하자. #ifndef __BINARY_TREE_H__ #define __BINARY_TREE_H__ typedef int BTData; // 이진 트리의 ..
[자료구조, C] 리스트 기반 스택을 이용한 계산기 구현
·
내가 공부한 것들/자료구조 & 알고리즘
[ListBaseStack.h] /* * 선형 자료구조 - 연결 리스트 기반 Stack 계산기 v0.3 * 파일명: ListBaseStack.h * 파일 버전: 0.1 * 작성자: Sevenshards * 작성 일자: 2023-11-23 * 이전 버전 작성 일자: * 버전 내용: 중위 표기법을 후위 표기법으로 바꾸는 프로그램의 구현 * 이전 버전 내용: */ #ifndef __LIST_BASE_STACK_H__ #define __LIST_BASE_STACK_H__ #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node* next; } Node; typedef struct _liststack..
sevenshards
'내가 공부한 것들/자료구조 & 알고리즘' 카테고리의 글 목록 (2 Page)