ํฐ์คํ ๋ฆฌ ๋ทฐ
Programming/์๊ณ ๋ฆฌ์ฆ
[ํฉ๋ณ ์ ๋ ฌ] ๋จ์ผ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ ํฉ๋ณ์ ๋ ฌ ๊ตฌํ
ํด๋์๊ทธ 2021. 10. 19. 03:02๋ถํ ํต์น๋ฒ
1. ๋ถํ
2. ์ฌ๊ท
3. ํต์น
ํฉ๋ณ์ ๋ ฌ: ๋ถํ ํต์น๋ฒ์ ๊ธฐ์ดํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
- ํ ์ ๋ ฌ๊ณผ ๋ฌ๋ฆฌ ์ฐ์ ์์ ํ ์ฌ์ฉํ์ง X
- ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ๋ฐฉ์์ผ๋ก ์ ๊ทผ
๋จ์ผ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ ํฉ๋ณ์ ๋ ฌ ๊ตฌํ(์ค๋ณต ์ ๋ ฅ O)
์
๋ ฅ ์์ 1
3 โฆ n
4 9 1
์ถ๋ ฅ ์์ 1
โก1 4 9 โฆ ์ ๋ ฌ ๊ฒฐ๊ณผ
์
๋ ฅ ์์ 2
8 โฆ n
73 65 48 31 29 20 8 3
์ถ๋ ฅ ์์ 2
โก3 8 20 29 31 48 65 73 โฆ ์ ๋ ฌ ๊ฒฐ๊ณผ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//ํฉ๋ณ์ ๋ ฌ
typedef struct ListNode {
int elem;
struct ListNode* next;
}node;
void addList(node** L, int elem) {// ๋ฆฌ์คํธ์ ์์ ์ถ๊ฐ
node* q = (node*)malloc(sizeof(node));
q->elem = elem;
q -> next = NULL;
node* p = *L;
if (*L == NULL) {
*L = q;
}
else {
while (p->next != NULL) {
p = p->next;
}
p->next = q;
}
}
void partition(node* L, node** L1, node** L2, int size) {
node* p = L;
*L1 = L;
for (int i = 0; i < (size / 2) - 1; i++) {
p = p->next;
}
*L2 = p->next;
p->next = NULL;
}
node* merge(node* L1, node* L2) {
node* p = NULL;
if (L1 == NULL)
return L2;
else if (L2 == NULL)
return L1;
if (L1->elem < L2->elem) {
p = L1;
p->next = merge(L1->next, L2);
}
else {
p = L2;
p->next = merge(L1, L2->next);
}
return p;
}
void mergeSort(node** L, int size) {
node* L1, * L2, * p = *L;
if (size <= 1)
return;
partition(p, &L1, &L2, size);
if (size % 2 == 0) {
mergeSort(&L1, size / 2);
mergeSort(&L2, size / 2);
}
else {
mergeSort(&L1, size / 2);
mergeSort(&L2, (size / 2) + 1);
}
*L = merge(L1, L2);
}
void printList(node* L) {
node* p = L;
while (p != NULL) {
printf(" %d", p->elem);
p = p->next;
}
}
void freeList(node* L) {
node* p = L;
while (p != NULL) {
L = L->next;
free(p);
p = L;
}
}
int main() {
int n, e;
node* L = NULL;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &e);
getchar();
addList(&L, e);
}
mergeSort(&L, n);
printList(L);
freeList(L);// ๋
ธ๋ free
return n;
}
*์ฐ๊ฒฐ๋ฆฌ์คํธ ๋งํฌ ์ฐ๊ฒฐ ํ๋ ๋ถ๋ถ ์ ์ดํดํ๊ธฐ
**partition ํจ์ ๋ถ๋ถ์ด ์ ์ดํด๊ฐ ์๋จ ๋ณต์ต ํ๊ธฐ
๋ฐ์ํ
'Programming > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฌ์ ] ์ด์งํ์(์ฌ๊ท, ๋น์ฌ๊ท, ์ซ์๋ง์ถ๊ธฐ) (0) | 2021.10.20 |
---|---|
[ํต ์ ๋ ฌ] ๋ฐฐ์ด์ ์ด์ฉํ ํต ์ ๋ ฌ ๊ตฌํ (0) | 2021.10.19 |
[ํ๊ณผ ํ์ ๋ ฌ] ํ ์ ๋ ฌ (์์ฐจํ, ์ต๋ํ) (0) | 2021.09.29 |
[ํ๊ณผ ํ์ ๋ ฌ] ํ ์์ฑ (์์ฐจํ, ์ต๋ํ) (0) | 2021.09.29 |
[์ฐ์ ์์ ํ] ์ ์๋ฆฌ ์ ๋ ฌ(์ ํ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ) (0) | 2021.02.08 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- DALLE
- ์ฝ๋ฉ๊ณต๋ถ
- ์ฝํ ์ค๋น
- ์ฝ๋ฉ์๋ฌ
- AIRUSH2023
- C์ธ์ด
- SQL
- HyperCLOVA
- gan
- ํ์ด์ฌ
- ๋๋ฆผ๋ถ์ค
- ๊ตฌ๊ธ์ฝ๋ฉ
- MYSQL
- StableDiffusion
- WGAN
- AIRUSH
- AI์ปจํผ๋ฐ์ค
- ๋ ผ๋ฌธ๋ฆฌ๋ทฐ
- ํ์ด์ฌ์ฝํ
- dreambooth
- ํ๋ก๊ทธ๋๋จธ์ค
- ๊ธฐ์ ์ปจํผ๋ฐ์ค
- ์ฝํ
- Aimers
- ๋ ผ๋ฌธ์ฝ๊ธฐ
- CLOVAX
- lgaimers
- ํ ํฌ์๋ฐ
- ์คํ ์ด๋ธ๋ํจ์
- SKTECHSUMMIT
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
๊ธ ๋ณด๊ดํจ