일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- request
- windows
- c++
- jsp
- meta
- API
- 자료구조
- array
- 투자
- CSS
- C
- query
- UTF-8
- Call-by-reference
- 포인터
- function
- OOP
- beans
- Kafka
- System
- algorithm
- 노드
- 윈도우즈
- JavaScript
- WebProgramming
- java
- Sort
- 악성코드
- CLASS
- HTML
- Today
- Total
목록C (6)
hahahia
Selection Sort(선택 정렬)- n개의 원소들 중에서 첫 번째 값을 키로 하여 남은 데이터 중에서 최소 값을 선택하여 비교한 후, 선택한 값이 키 값보다 작으면 서로 교환, 그렇지 않으면 다음 값을 키로 하여 n-1만큼 반복 수행하는 정렬이다. ex) n=5, 8 3 4 9 7초기 : 8 3 4 9 7 1단계 : (3)(8 4 9 7) 2단계 : (3 4)(8 9 7) 3단계 : (3 4 7)(9 8) 4단계 : (3 4 7 8 9) /* selection.cpp */ #include using namespace std; void swap(int *, int *); int main() { int n, min; int arr[100]; cin >> n; for(int i=0; i> arr[i]; ..
분할정복 접근법을 이용한 merge sort 분할 : 정렬할 n개의 원소의 수열을 n/2개씩 두 개의 부분 수열로 분할한다. 정복 : 병합 정렬을 이용해서 재귀적으로 그 두 부분 수열을 정렬한다. 결합 : 정렬된 두 개의 부분 수열을 병합해 하나의 정렬된 수열을 만든다. -> 여기서 정렬할 수열의 크기가 1이 되면 다 정렬된것이므로 더이상 재귀적 호출은 일어나지 않게됩니다. 병합을 위한 과정으로는 Merge(A,p,q,r)이 필요한데 여기서 A = 배열, p,q,r은 index입니다(p
입력과 출력 작업이 리스트의 한 쪽 끝에서만 이루어지는 선형 리스트의 한 형태 선입후출의 구조(FILO; First-In Last-Out) /* stack.cpp 배열을 사용한 스택 구현 */ #include #define size 10 char stack[size]; int top = 0; // stack pointer int i = 0; void push(char ch); // push char pop(); // pop void printstack(); // 현재 stacklist 출력 void push(char ch) { if(top==size) // stack overflow { printf("stack is full\n"); return; } stack[top] = ch; // 스택에 한 문자 ..
(1) call-by-value call-by-value는 단순히 실 매개변수 값을 형식 매개변수에 복사함으로 구현한다. 따라서 실 매개변수의 값은 피 호출 함수가 실행된 후에도 변하지 않는다. 이와 같은 기법은 주로 함수(sub program)에 값을 전달하고 실 매개변수의 값을 원형대로 보존하기 위하여 사용한다. 따라서 실 매개변수의 값이 피 호출 함수의 형식 매개변수에 복사되기 때문에 값의 참조가 빠르다. 그리고 함수의 실행 후에도 실 매개변수의 값이 변경되지 않아 자료의 보호가 가능하다. 그러나 형식 매개변수에 대한 기억 공간을 별도로 마련해야 하기 때문에 기억의 장소의 소모가 크고, 배열과 같은 자료는 복사에 많은 시간이 소모된다. C언어 에서는 배열을 call-by-value의 매개변수로 취할..
배열(Array)이란 C프로그램에서 사용하는 자료구조의 한 형식으로, 동일한 크기와 동일 한자료 형태의 원소를 나열한 자료의 집합을 말한다. 예를 들어 정수형 변수 5개를 선언하게 된다면 다음과 같을 것이다. int x1, x2, x3, x4, x5; 그러나 이러한 자료 저장 방식은 대량의 자료를 저장하기에는 한계가 있다. 이러한 한계를 극복하기 위하여 배열이 있는 것이다. // 배열의 선언 char ch1[10]; // 문자형 1차원 배열 int number[10]; // 정수형 1차원 배열 float number2[10][10]; // 실수형 2차원 배열 기본적으로 자료형 중에서 문자형(char)은 1byte, 정수형(int)과 실수형(float)는 4byte, 그리고 실수형(double)은 8byt..
¢지역 변수의 의미 : 지역 변수(local variable)는 함수의 몸체나 블록 안에 선언된 변수. 즉, 중괄호 내에 선언된 변수. ¤지역 변수는 해당 지역 변수의 선언을 포함하는 함수 내에서만 접근이 가능 ¤지역 변수는 함수가 호출될 때 메모리상에 올라갔다가, 함수가 종료되면 메모리상에서 사라짐. ¤지역 변수는 외부에 선언된 동일한 이름의 변수를 가릴 수 있다. ¤모든 매개 변수는 지역 변수다. ¢전역 변수의 의미 : 전역 변수(global variable)는 함수 밖에 선언된 변수 ¤프로그램이 시작하자마자 메모리 상에 올라가서 프로그램이 종료될 때까지 계속 존재 ¤프로그램 어디에서든 접근 가능 ¤모든 함수에서 공유할 수 있는 저장공간을 이용할 수 있는 장점이 있으나, 어느 한 함수에서 잘못 다루면..