본문 바로가기

분류 전체보기75

[정렬] 삽입 정렬 자료구조 연결 리스트 이진 트리 스택 큐 해시 정렬 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 힙 정렬 알고리즘 재귀 함수 너비 우선탐색(BFS) 깊이 우선탐색(DFS) 다익스트라 삽입 정렬(Insertion Sort) 배열의 두번째 부터 끝까지 2~4을 반복한다. 선택된 값(Key)과 이전 배열들의 값을 비교한다. Key값이 작으면 한칸씩 오른쪽으로 쉬프트 해준다. Key값이 크면 다음 배열에 Key값을 넣어준다. 시간 복잡도 : O(n^2) 소스코드 #define __main #ifdef __main #include #include #include #define MAX_SIZE 10 void Init(int arr[]) { srand(time(NULL)); for (int i = 0; i < MAX_S.. 2020. 11. 9.
[정렬] 선택 정렬 자료구조 연결 리스트 이진 트리 스택 큐 해시 정렬 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 힙 정렬 알고리즘 재귀 함수 너비 우선탐색(BFS) 깊이 우선탐색(DFS) 다익스트라 선택 정렬(Selection Sort) 배열 중 가장 작은 값을 찾는다. 배열의 첫번째 값과 교환한다. 첫번째 배열을 제외한 나머지 배열을 가지고 1~3을 반복한다. 시간 복잡도 : O(n^2) 소스코드 #define __main #ifdef __main #include #include #include #define MAX_SIZE 10 void Init(int arr[]) { srand(time(NULL)); for (int i = 0; i < MAX_SIZE; i++) { // 임의의 정수 입력 arr[i] = rand() .. 2020. 11. 6.
[정렬] 버블 정렬 자료구조 연결 리스트 이진 트리 스택 큐 해시 정렬 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 힙 정렬 알고리즘 재귀 함수 너비 우선탐색(BFS) 깊이 우선탐색(DFS) 다익스트라 버블정렬(Bubble Sort) 버블 정렬은 인접한 두 변수를 비교하여 정렬하는 방법이다. 시간 복잡도 : O(n^2) 소스코드 #define __main #ifdef __main #include #include #include #define MAX_SIZE 10 void Init(int arr[]) { srand(time(NULL)); for (int i = 0; i < MAX_SIZE; i++) { // 임의의 정수 입력 arr[i] = rand() % 10000; } } void swap(int* a, int* b) { i.. 2020. 11. 4.
[자료구조] 해시 자료구조 연결 리스트 이진 트리 스택 큐 해시 정렬 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 힙 정렬 알고리즘 재귀 함수 너비 우선탐색(BFS) 깊이 우선탐색(DFS) 다익스트라 해시(Hash) 해시법은 기존 배열을 이용한 데이터 관리를 좀더 효율적으로 관리하기위해 임의의 길이(Prime Number)의 테이블을 이용하여 매핑하는 방법이다. 배열을 이용할때는 삭제하기 위해서는 시간복잡도가 O(n)만큼 들지만 해시법을 이용하면 O(1)만큼 들다. 해싱 key값을 임의의 수로 만들어주는 함수("GetKey()")를 이용하여 해시값을 구한다. 해시값에 해당하는 주소가 가리키는 노드의 가장 끝단까지 이동한다. 이동하면서 중복된 key값이 있는지 확인한다. 가장 끝단에 노드를 만들어 Key, Daata값을 저장한.. 2020. 11. 1.