C언어 퀵정렬(Quick Sort)
·
e. 자료구조 및 알고리즘
#include #include void quicksort(int a[], int start, int end) { int index; if(start < end) { index = partition(a, start, end); quicksort(a, start, index-1); quicksort(a, index+1, end); } else { return; } } int partition(int a[], int start, int end) { int pivot = a[end]; int i; int index = start; int temp; for(i=start; i
C언어 합병정렬(Merge Sort 2)
·
e. 자료구조 및 알고리즘
#include #include // conquer void merge(int a[], int low, int mid, int high) { int temp[100000]; int i=low; int j=mid+1; int k=0; // fight while(i
C언어 합병정렬(Merge Sort 1)
·
e. 자료구조 및 알고리즘
#include void MergeSort(int *arr, int start, int end, int mid) { int left = start, right = end, r_mid = mid + 1, sorted_index = start; // 왼쪽과 오른쪽을 비교 후 sorted배열에 저장 while (left
C언어 단방향 큐 (Queue)
·
e. 자료구조 및 알고리즘
#include #include #define TRUE 1 #define FALSE 0 typedef struct _node { int data; struct _node *next; } Node; typedef struct _lQueue { Node *front; // 삭제할 노드를 가리키는 용도 Node *rear; // 생성된 노드를 가리키는 용도 } LQueue; typedef LQueue Queue; void QueueInit(Queue *target); // 큐 초기화 함수 int QIsEmpty(Queue *target); // 큐에 데이터가 존재하는지 확인하는 함수 void Enqueue(Queue *target, int data); // 큐에 데이터를 저장하는 함수 int Dequeue(Q..
C언어 단방향 연결리스트 (LinkedList)
·
e. 자료구조 및 알고리즘
#include #include typedef struct _list { struct __node *cur;// 현재 커서 위치 struct __node *head;// 머리 위치 struct __node *tail;// 꼬리 위치 } linkedlist; typedef struct __node { int data;// 노드 데이터 struct __node *next;// 해당 노드의 NEXT 노드 } node; void createNode(linkedlist *L, int tdata)// 노드 생성 { node *newNode = (node *)malloc(sizeof(node));// 새로운 노드 메모리 확보 newNode->data = tdata;// 새로운 노드 데이터 삽입 newNode->nex..
로봇쟁이
'e. 자료구조 및 알고리즘' 카테고리의 글 목록