728x90 C11 [C/algorithm]알고리즘 합병(merge) 정렬 C언어 ▶합병 정렬 각 단계에서 입력을 반으로 나눠 재귀 호출해 다시 합치면서 정렬 평균 성능 시간 복잡도 : O(nlogn) 최악 성능 시간 복잡도 : O(nlogn) 최선 성능 시간 복잡도 : O(nlogn) ▶소스코드 #define SIZE 10 int temp[SIZE]; void Merge(int arr[], int left, int mid, int right) { int L = left; int R = mid + 1; int n = left; while (L 2021. 11. 20. [C/algorithm]알고리즘 삽입 정렬(Insertion Sort) C언어 ▶삽입 정렬 버블 정렬보다 조금 더 나은 정렬. 배열의 앞부분부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아서 삽입한다. 순회한 원소들의 부분 배열은 정렬 상태를 유지함. 평균 성능 시간 복잡도 : O(n^2) 최악 성능 시간 복잡도 : O(n^2) 최선 성능 시간 복잡도 : O(n) ▶소스코드 void InsertionSort(int arr[], int size) { int i, j, temp; for (i = 1; i 0 && arr[j - 1] > temp; j--) { arr[j] = arr[j - 1]; } arr[j] = temp; } } 위 소스는 오름차순 정렬이다. ▶해석 자신보다 앞에 있.. 2021. 11. 20. [C/algorithm]알고리즘 버블 정렬(Bubble Sort) C언어 ▶버블 정렬(아래에 업그레이드된 버블 정렬 있음) 가장 느린 정렬 중 하나. 인접한 값의 각 쌍을 비교하여 교환하며 연속적으로 다음 쌍을 비교한다. 오름차순이라면 가장 큰 값이 배열의 끝으로 이동하며 다음 정렬 때 제외된다. 평균 성능 시간 복잡도 : O(n^2) 최악 성능 시간 복잡도 : O(n^2) ▶소스코드 void BubbleSort(int arr[], int size) { int i, j, temp; for (i = 0; i arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } 위 소스는 오.. 2021. 11. 20. [C/개념, 이해]char , wchar_t C언어 ▶char : 1바이트 (8비트) 정수형 처리 변수 (signed) char : -128~127 unsigned char : 0~255 ▶wchar_t : 2바이트 와이드 문자(wide character)를 저장하기 위한 자료형 변수 (유니코드를 저장할 때 유용) wchar_t : 0~65,535 ▶선언 char a; wchar_t a; char *a; wchar_t *a; char a = 'a'; wchar_t a = L'a'; L을 붙여줘야됨 char a[10] = "abcd"; wchar_t a[10] = L"abcd"; 코드영역 (디스크(ROM) 읽기전용) 에 있는 "abcd" 문자열을 a에 복사 const char *a = "abcd"; const wchar_t *a = L"abcd"; 코드영역.. 2021. 11. 19. 이전 1 2 3 다음 728x90