본문 바로가기

<ALGORITHM>16

210118(월) 순차 정렬(Sequntial Sort) 한 자리씩 순차적으로 정렬한다고 해서 순차 정렬. 내부 순환문이 한번 다 돌면 그 자리는 최솟값이 확정되고 다음 자리로 넘어간다. ▼ 개념 for (i = 0 > n-1) for (j = i+1 > n) if (Compare(arr[i], arr[j]) > 0) Swap(arr[i], arr[j]); ▼ 코드 #include int Compare(int lhs, int rhs); void Swap(int* lhs, int* rhs); int main() { const int arrMax = 5; int iArr[5] = { 0,3,4,2,1 }; printf("> BEFORE\n"); for (int i = 0; i < arrMax; i++) { printf("iA.. 2021. 1. 18.
1. 역순(Reverse) 역순(Reverse)의 개념 역순(Reverse)은 앞에서 n번째 값과 뒤에서 n번째 값을 차례로 교환한다. 두 값을 교환하기 때문에 배열 길이의 절반의 순환문만 돌면 된다. 만약 배열 길이만큼 돈다면 역순의 역순이라 다시 본래의 순서대로 된다. ▼앞에서 n번째와 뒤에서 n번째를 교환한다. C99 ▼ 관련 개념 Loop & Pointer & Call By Address ▼ 구현 코드 void Swap(int* lhs, int* rhs) { int _temp = *lhs; *lhs = *rhs; *rhs = _temp; } void Reverse(int iArr[], int length) { for (int i = 0; i < (length / 2); i++) { Swap(&iArr[i], &iArr[le.. 2021. 1. 17.
0. 교환함수(Swap) 포인터 방식 C99 ▼ 관련 개념 Pointer & Call By Address ▼ 구현 코드 void Swap(int* lhs, int* rhs) { int _temp = *lhs; *lhs = *rhs; *rhs = _temp; } ▼ 사용 예시 Swap(&lhs, &rhs); 포인터(*)를 이용한 방법이다. 포인터는 C 표준에서는 함수 인자에 직접적으로 접근할 수 있는 유일한 방법이다. CPP B.11 ▼ 관련 개념 Reference & Call By Reference ▼ 구현 코드 void Swap(int& lhs, int& rhs) { int temp = lhs; lhs = rhs; rhs = lhs; } ▼ 사용 예시 Swap(lhs, rhs); 참조자(&)를 이용한 방법이다. CPP에서 추가.. 2021. 1. 17.
210115(금) 코로나의 영향으로 프로그래밍 수업의 순서가 꼬여서 중간에 알고리즘 수업을 진행했다. 먼저 교수님께서 프로그래밍 수업을 듣는 우리가 얼마나 C에 대해서 이해하고 있는지 확인하기 위해 문제를 내주셨다. 두 배열의 합을 저장하는 배열 출력하기 ▼ 문제 내용 인자를 5개~10개 가지는 동일한 크기의 배열 두 개를 선언하고 임의의 값으로 초기화 한다. 배열 하나를 더 이용해서 두 배열의 같은 색인의 인자들끼리 합을 저장하고 출력하는 함수를 만들어서 출력하라. ▼ 문제 목적 배열과 순환문에 대해서 이해하고 있는지 확인하는 문제다. ▼ 내가 푼 코드 #include void Print(int a, int b, int c) { printf("iArr1(%d) + iArr2(%d) = iArrR(%d)\n", a, b,.. 2021. 1. 15.