본문 바로가기

Algorithm11

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.
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.