본문 바로가기

c10

20210121(목) 오늘은 알고리즘 말고도 다양한 C 표준 함수에 대해서도 배웠다. rand() 함수 Random의 약자로 { 0 ~ RAND_MAX } 범위에서 무작위 Int형 값을 반환하는 함수다. C언어의 표준 라이브러리 중 하나인 라이브러리에 매크로로 최댓값이 정의되어 있는데 운영체제에 따라 이 최댓값의 크기가 다 다르다. 리눅스, OpenBSD는 { #define RAND_MAX 2147483647(INT_MAX) } 라 정의 되어있고, 마이크로소프트社의 윈도우는 { #define RAND_MAX 0x7fff(32767) } 라고 정의되어있다. ▼ 예시 코드 #include #include int main() { printf("RAND : %d\n", rand()); return (0); } srand() 함수 S.. 2021. 1. 21.
20210120(수) 삽입 정렬(Insertion Sort) 범위를 늘려가면서 검사하는 것이 특징인 정렬법. ▼ 전체 코드 #include int Compare(int lhs, int rhs); void Swap(int* lhs, int* rhs); void InsertionSwap(int* pArr, int length); void PrintArray(int* pArr, int length); int main() { int iArr[5] = { 5,4,3,2,1 }; PrintArray(iArr, 5); InsertionSwap(iArr, 5); PrintArray(iArr, 5); return (0); } int Compare(int lhs, int rhs) { return (lhs - rhs); } void Swap(i.. 2021. 1. 20.
20210119(화) 선택 정렬(Selection Sort) ▼ 이론 for(i = n; i > 1; i--) max = 0; for(j = 1; j 1; i--) { int max = 0; for (i.. 2021. 1. 19.
5. 삽입 정렬(Insertion Sort) 삽입 정렬의 개념 차례로 하나씩 꺼내서 앞에 있는 값들과 크기를 비교한 뒤 바꿔서 삽입한다고 해서 삽입 정렬이라 부른다. ▼ 삽입 정렬 알고리즘 도식화 그림을 보면 교환이라기 보다는 옆으로 꺼내두는 모습을 볼 수 있는데 삽입 정렬의 구현 방법은 이동(Shift) 방식과 교환(Swap) 방식 둘 다 가능하다. 삽입 정렬의 성능[O(n²)] 정렬할 자료의 수의 제곱에 비례하여 늘어난다. 삽입 정렬은 범위를 늘려가면서 비교하는 방식 때문에 배열이 길어지면 길어질 수록 효율이 떨어진다. 반대로 말하면 배열이 짧으면 짧을수록 속도가 빠르다. 고성능 정렬 라이브러리에서는 데이터의 양이 적을 때엔 삽입 정렬로 전환하여 속도를 올리기도 한다. C99 ▼ 관련 개념 Condition & Loop & Pointer & C.. 2021. 1. 18.