반응형

소스 코드 353

[C언어 알고리즘] 2.5.3 삽입 정렬 알고리즘 소스 코드

[C언어 알고리즘] 2.5.3 삽입 정렬 알고리즘 소스 코드//삽입 정렬(Insertion Sort) #include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 void InsertionSort(int *base, int n); int main(void) { int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; InsertionSort(arr, 10); return 0; } void ViewArr(int *arr, int n); void InsertionSort(int *base, int n) { int i, j; ViewArr(base, n);//현재 상태 출력 for (i = 1; i0; j--) { if (base[j - 1]>..

[C언어 알고리즘] 2.5.2 삽입 정렬 알고리즘 구현

[C언어 알고리즘] 2.5.2 삽입 정렬 알고리즘 구현 삽입 정렬 알고리즘을 구현합시다. 삽입 정렬(base:컬렉션, n:원소 개수, compare:비교 논리) 반복(i:=1; i0 ; j:=j-1) 조건(compare (base [j-1], base [j]) < 0) temp: = base [j-1] base[j-1] = base [j] base[j] = temp 아니면 루프 탈출 //삽입 정렬(Insertion Sort) #include 먼저 두 개의 값을 교환하는 매크로 함수를 작성합니다. #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 이 책에서는 정수 형식 배열을 정렬하는 함수를 만들기로 할게요. 원소 형식에 관계없이 정렬하는 방법은 디딤돌 정렬 ..

[C언어 알고리즘] 2.4.3 선택 정렬 알고리즘 소스 코드

[C언어 알고리즘] 2.4.3 선택 정렬 알고리즘 소스 코드//선택 정렬(Selection Sort) #include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 void SelectionSort(int *base, int n); int main(void) { int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; SelectionSort(arr, 10); return 0; } void ViewArr(int *arr, int n); void SelectionSort(int *base, int n) { int i, j; int maxi; ViewArr(base, n);//현재 상태 출력 for (i = n; i>1; i--)//정렬할 범위..

[C언어 알고리즘] 2.4.2 선택 정렬 알고리즘 구현

[C언어 알고리즘] 2.4.2 선택 정렬 알고리즘 구현이번에는 선택 정렬 알고리즘을 구현해 보아요. 선택 정렬(base:컬렉션,n:원소 개수,compare:비교 논리) 반복(i:=n; i>1 ; i:= i-1) 반복(max=0,j:=1; j1; i--)//정렬할 범위를 축소해 나갑니다. { 선택 정렬의 내부 반복문은 인덱스 0에서 마지막 원소 중에 제일 큰 값을 찾아 맨 마지막 원소와 교환하는 작업을 수행합니다. maxi = 0; for (j = 1; j

[C언어 알고리즘] 2.3.3 버블 정렬 알고리즘 소스 코드

[C언어 알고리즘] 2.3.3 버블 정렬 알고리즘 소스 코드//버블 정렬(Bubble Sort) #include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 void BubbleSort(int *base, int n); int main(void) { int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; BubbleSort(arr, 10); return 0; } void ViewArr(int *arr, int n); void BubbleSort(int *base, int n) { int i, j; ViewArr(base, n);//현재 상태 출력 for (i = n; i>1; i--)//정렬할 범위를 축소해 나갑니다. { for (j =..

[C언어 알고리즘] 2.3.2 버블 정렬 알고리즘 구현

[C언어 알고리즘] 2.3.2 버블 정렬 알고리즘 구현이번에는 버블 정렬 알고리즘을 구현해 보아요. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n; i>1 ; i:= i-1) 반복(j:=1; j 0) 교환(base[j-1],base[j]) //버블 정렬(Bubble Sort) #include 먼저 두 개의 값을 교환하는 매크로 함수를 작성합니다. #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 이 책에서는 정수 형식 배열을 정렬하는 함수를 만들기로 할게요. 원소 형식에 관계없이 정렬하는 방법은 디딤돌 정렬 알고리즘 (C언어)를 참고하세요. void BubbleSort(int *base, int n); in..

[C언어 알고리즘] 2.2.3 순차 정렬 알고리즘 소스 코드

[C언어 알고리즘] 2.2.3 순차 정렬 알고리즘 소스 코드 //순차 정렬(Sequential Sort)#include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 void SequenceSort(int *base, int n);int main(void){ int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; SequenceSort(arr, 10); return 0;}void ViewArr(int *arr, int n);void SequenceSort(int *base, int n){ int i, j; ViewArr(base, n);//현재 상태 출력 for (i = 0; i

[C언어 알고리즘] 2.2.2 순차 정렬 알고리즘 구현

[C언어 알고리즘] 2.2.2 순차 정렬 알고리즘 구현이번에는 순차 정렬 알고리즘을 구현해 보기로 해요. 순차 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=0->n) 반복(j:=i+1->n) 조건(compare(base[i], base[j]) > 0) 교환(base[i],base[j]) 이번에는 순차 정렬 알고리즘을 구현하는 예를 보여드릴게요. //순차 정렬(Sequential Sort) #include 먼저 두 개의 정수 값을 교환하는 SWAP 매트로 함수를 작성합니다. #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 이 책에서는 정수 형식 배열을 정렬하는 함수를 만들기로 할게요. 원소 형식에 관계없이 정렬하는..

[C언어 알고리즘] 2.1 루프 변성과 루프 불변성

[C언어 알고리즘] 2.1 루프 변성과 루프 불변성 반복 알고리즘으로 어떠한 문제를 해결할 수 있는지 증명할 때는 루프 변성과 루프 불변성을 이용합니다. 루프 변성은 반복문을 수행하면서 변하는 성질이며 루프 불변성은 변하지 않는 성질을 말합니다. 예를 들어 정수 start에서 end 사이의 합계를 구하는 문제가 있다고 가정합시다. 이 문제는 다음과 같은 방법으로 해결할 수 있습니다. 특정 범위의 합계 구하기(start:시작 값, end: 끝 값) sum:= 0 반복(index:=start; index

[C언어 알고리즘] 1.3 공통으로 사용할 코드

[C언어 알고리즘] 1.3 공통으로 사용할 코드앞으로 이 책에서 공통으로 사용할 소스를 먼저 소개할게요. 같은 부분을 계속 지면을 할애하는 것보다 앞에서 언급하고 넘어갈게요. 이 책에서 공통으로 사용할 Book 형식을 정의합시다. Book 형식에는 제목, 저자, 번호를 멤버로 구성하세요. #pragma once #define MAX_TIT_LEN 200 #define MAX_AUT_LEN 20 typedef struct _Book Book; struct _Book { char title[MAX_TIT_LEN+1]; char author[MAX_AUT_LEN+1]; int num; }; 그리고 동적으로 Book을 생성하는 함수와 소멸하는 함수를 제공합시다. Book *New_Book(const char *..

반응형