본문 바로가기

분류 전체보기

선택 정렬(Selection Sort) 선택 정렬(Selection-Sort) - 남은 배열의 원소들 중 최소 값을 찾아 현재 포지션(맨 앞)에 위치 시키는 방식 - O(n2)의 복잡도를 가진다. #include #include #include #define MAX 10 // size of array void display_elements( int *, int); void selection_sort( int *, int); int main( void) { int arry[MAX] = { 0,}; int count = 0; int size = 0; srand( time(NULL)); // used to init random size = sizeof(arry)/4; // init elements of array with random numbers.. 더보기
삽입 정렬(Insertion-Sort) 삽입 정렬(Insertion Sort) - 배열의 모든 원소를 앞에서 부터 차례대로 비교하여, 자신의 위치를 찾아 삽입하는 방식 - 작은 원소의 정렬에 효율적인 알고리즘 - *In-place 알고리즘의 한 종류 * 원소를 저장하고 있는 초기 배열의 아주 작은 추가적인 공간만 요구하는 알고리즘 * "아주 작은"이란 n 개의 원소를 정렬할 때, O(log n) 만큼의 추가 공간이 요구되는 것 #include #include #include #define MAX 10 // size of array void display_elements( int *, int); void insertion_sort( int *, int); int main( void) { int arry[MAX] = { 0,}; int count.. 더보기
C언어 2중 포인터를 이용한 스택(stack) #include #include typedef struct node{int data;struct node *prv;}NODE; NODE* createnode( int); // create a node in Hip realmvoid delNode( NODE **); // delete a node positioned on top of stackvoid addNode( NODE **, int); // add a node on top of stackvoid insertNode( NODE **, int, int); // insert a node between two nodes int main( void){NODE *top = NULL; addNode( &top, 10);addNode( &top, 20);addNo.. 더보기
PC1602A (text lcd) 디바이스 드라이버 (device driver) #include #include #include #include #include #define GPIO_BASE 0xE0200000 // GPIO의 기본 물리주소#define DB_CONF (0xC00/4) // DB로 사용할 핀을 설정하기위한 레지스터 주소#define DB_DAT (0xC04/4) // DB로 사용할 핀에 데이터를 넣기위한 레지스터 주소#define CTRL_CONF (0xC20/4) // LCD 제어를 위한 핀을 설정하기위한 레지스터 주소#define CTRL_DAT (0xC24/4) // LCD 제어를 위한 핀에 데이터를 넣기위한 레지스터 주소 #define RS 0 // RS로 사용할 핀의 인덱스#define RW 1 // RW로사용할 핀의 인덱스#define EN 3 // EN.. 더보기
HC-SR04(ultrasonic) 초음파 센서 디바이스 드라이버 (device driver) #include #include #include #include #include #include #include #include #define GPIO_BASE 0xE0200000 // GPIO 기본주소#define GPH0CON (0xC00/4) // 사용할PIN의CONFIG 레지스터주소#define GPH0DAT (0xC04/4) // 사용할PIN의DATA 레지스터주소 #define TRIG 0 // TIR 핀의인덱스#define ECHO 1 // ECHO 핀의인덱스 static volatile u32 *gpio_base = 0x0; // 주소를저장하는변수struct timeval after, before; // 시간을계산하기위한변수u32 irq; // 인터럽트등록을위한변수 static void gp.. 더보기
이중 포인터를 이용한 tree(트리) 구조 #include #include #defineFAIL0#defineSUCC1 typedef struct node{struct node *left;struct node *right;int data;}NODE; NODE* createNode( int);void insertNode( NODE **, int);int deleteNode( NODE **, int); int main( void){int arry[]= {50, 70, 30, 90, 60, 20, 110, 80, 65, 55, 68, 63, 58, 53};int c= 0;NODE *root= NULL; for( c = 0 ; c < sizeof(arry) / 4 ; c ++){insertNode( &root, arry[c]);} deleteNode( .. 더보기
이중 포인터를 이용한 큐(queue) #include #include #define _MSGONCALL_#define _PRINTNODE_ typedef struct node{int data;struct node* next;}NODE; void insertNode( NODE **, NODE **, int);void deleteNode( NODE **);void printNode( NODE *);NODE* createNode( int); int main( void){NODE *front = NULL;NODE *rear= NULL; insertNode( &front, &rear, 10);insertNode( &front, &rear, 20);insertNode( &front, &rear, 30); deleteNode( &front);delete.. 더보기
라즈베리파이에서 무선랜(wlan) 설정하기 더보기
라즈베리 파이(raspberry PI) - 라즈비안 SSH 설정 더보기
라즈베리 파이(raspberry PI) - 라즈비안 삼바(samba) 설치 및 설정 더보기