#라이브러리 없이 코딩하기 구현 알고리즘 Merge Sort Quick Sort 다음번에 시도해 보기 퀵소트로 구현하면 시간을 더 단축시킬 수 있는 문제인 것 같으니 도전해보기 (머지소트 실행시간 : 80ms) + 퀵소트는 시간을 단축시키지는 않았지만, 머지소트에 사용되는 포인터 어레이 만큼의 메모리 사용량을 줄일 수 있었다. (아래 : merge sort, 위 : quick sort) 소스 코드 (merge sort) #include #define MAX_NODE 100001 struct Node { char name[11]; int korean, english, math; } nodes[MAX_NODE], *nt[MAX_NODE], *tmp[MAX_NODE]; void mstrcpy(char* dst..
#라이브러리 없이 코딩하기 구현 알고리즘 Hash Merge Sort 소스 코드 #include #define MAX_TABLE 500017 struct Hash { char name[21]; Hash* next; } h[MAX_TABLE], * ht[MAX_TABLE], * target[MAX_TABLE]; int h_idx = 0, t_idx = 0; unsigned long getHash(const char* str) { unsigned long hash = 5381; int c; while (c = *str++) { hash = (((hash name); } }
은 바로 다음 주 미래의 나 #라이브러리 없이 코딩하기 구현 알고리즘 Hash Merge Sort 생각해 볼 거리 Quick Sort로 구현해보기 소스 코드 #include #define MAX_TABLE 1000017 struct Hash { char name[6]; bool in; Hash* next; } h[MAX_TABLE], * ht[MAX_TABLE], * workin[MAX_TABLE]; unsigned int h_idx = 0; unsigned long getHash(const char* str) { unsigned long hash = 5381; int c; while (c = *str++) { hash = (((hash = 0) { ht[idx++] = workin[s1++]; } el..
#라이브러리 없이 코딩하기 #이지만 atoi는 직접 구현하니 시간초과라 #라이브러리 사용 구현 알고리즘 Hash 생각해 볼 거리 이중 for loop 안에서 break를 사용하면 왜 실행 시간이 8ms 늘어날까? 시간 초과 나지 않도록 atoi 직접 구현해보기 소스 코드 #include #include #define MAX_TABLE 100017 #define MAX_NAME 21 struct Hash { char name[MAX_NAME]; Hash* next; unsigned long int idx; } h[MAX_TABLE], * ht[MAX_TABLE]; unsigned int h_idx = 1; unsigned long getHash(const char* str) { unsigned long h..