์ผ๋ฐฉํฅ ํด์ํจ์ ์ ์ ํด์ํจ์ ์ค ์ญ์์ ํญ์ฑ, ์ 2์ญ์์ ํญ์ฑ, ์ถฉ๋์ ํญ์ฑ์ ๊ฐ์ง๊ณ ์๋ ํจ์ ํด์ํจ์ : ์์ ๊ธธ์ด์ ๋ฉ์ธ์ง๋ฅผ ์ผ์ ๊ณ ์ ๊ธธ์ด์ ํด์ฌ ๊ฐ์ผ๋ก ๋ณํ์์ผ์ฃผ๋ ๋จ๋ฐฉํฅ์ฑ ํจ์/์๊ณ ๋ฆฌ์ฆ ์ญ์ ์ ํญ์ฑ(preimage resistance) : ์ 1 ์ญ์ ๊ณต๊ฒฉ์ ๋ํ์ฌ ์์ ํ ๊ฒ ์ 1 ์ญ์ ๊ณต๊ฒฉ : ํด์๊ฐ์ด ์ฃผ์ด์ก์ ๋, ๊ทธ ํด์๊ฐ์ ์ถ๋ ฅํ๋ ์ ๋ ฅ๊ฐ์ ์ฐพ๋ ๊ณต๊ฒฉ ๋จ๋ฐฉํฅ ์ํธํ์ ๊ด๋ จ ์์ ๋จ๋ฐฉํฅ ์ํธํ : A => f => B (์ํธํ) A
์ฃผ์์ ์น์ํธ ์ ์น ์ํธ๋? ์นํ ์ํธ๊ฐ ํ๋ฌธ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ๋ฌธ์๋ก ์ด๋ ํ ๊ท์น์ ๋ฐ๋ผ ๋์์์ผ ์ํธํํ๋ ๋ฐฉ์์ด๋ผ๋ฉด, ์ ์น ์ํธ๋ ํ๋ฌธ ๋ฌธ์์ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ ๊ท์น์ด๋ค. ์ฆ, ์นํ ์ํธ๋ ํ๋ฌธ ๋ฌธ์์์ ์ฌ์ฉํ๋ ๋ฌธ์ ์งํฉ๊ณผ ์ํธ๋ฌธ์ ๋ฌธ์ ์งํฉ์ด ๋ค๋ฅผ ์ ์์ง๋ง, ์ ์น ์ํธ์์๋ ๊ฐ๋ค. ๋ํ ๋ฌธ์๊ฐ ๋ฌธ์๋ก ๋์๋๋ ๊ฒ์ด ์๋๋ผ ํด๋น ๋ฌธ์์ ์์น๊ฐ ์์น๋ก ๋์๋๋ค. ์ ์น ์ํธ ์ข ๋ฅ ๋จ์ ์ ์น ์ํธ ๊ธฐ์กด ํ๋ฌธ์ ์ฃผ์ด์ง ํค ๊ฐ(๋ฌธ์ฅ์ ๊ธธ์ด์ ํด๋นํ๋ ์์ด)๋ก ์ํธํ ํ๋ค. ์ํธํํ ๋ ์ฌ์ฉํ ์ํธํ ํค๋ก ๋ณตํธํ ํค๋ฅผ ์์๋ด์ ๋ณตํธํ์ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ๋น๋ฐ ํค ๋ฐฉ์์ ์ฌ์ฉํด์ผํ๋ค. ๋ณตํฉ ์ ์น ์ํธ ์๋ฅผ ๋ค์ด "I AM HEEEUN I AM SENIOR"๋ผ๋ ๋ฌธ์ฅ์ ์ ์น ์ํธ๋ก ์ํธํ ์ํฌ ๋, ์ฃผ์ด์ง ๋ฌธ์ ์งํฉ์ ..
์์ ์ฐพ๊ธฐ ํ๋ก๊ทธ๋จ ๋ฐฉ๋ฒ n-1๊น์ง ๊ตฌํ๊ธฐ O(n) n-1 ๊น์ง ์์๋ฅผ ๋ชจ๋ ๊ตฌํ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ์ง๊ธฐ ์์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ์์ ๋ฐฐ์ด๋ง ๋๋ฉด์ ๋๋์ด์ง๋์ง ํ๋จ O(n) ์์ ๋ฐฐ์ด์ ๋ง๋๋ ๋ฐ์ O(n) => ๋ฉ๋ฆฌํธ ์์ ๋ฃจํธ n๊น์ง ๋๋ฆฌ๋ฉด์ ์ง์ ์ ์ธํ๊ธฐ O(sqrt(n)) ์กฐ๊ฑด ์ถ๊ฐ ๋ช ๊ฐ์ ์์( 3, 5 )๋ฅผ ๊ฐ์ง๊ณ ํด๋น ์์ ๋ฐฐ์์ด๋ฉด ๋ฐ์ด๋๊ธฐ 3, 5 ๊ณ์ฐ ์ ๋๋์ด๋จ์ด์ง์ง ์์์ผ๋ฉด ํด๋น ์์ ๋ฐฐ์์๋ ๋๋์ด๋จ์ด์ง์ง ์์ ๊ตฌํ ์ ์ฃผ์ ํด๋น ์๊ฐ 3์ผ๋ก ๋๋์ด๋จ์ด์ง๋์ง, 5๋ก ๋๋์ด๋จ์ด์ง๋์ง๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด ๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฌ์ฉํด์ผํ๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ ๋ณ์ ํ๋์ฉ ์ง์ ํ๊ณ 1์ฉ ๋ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ์ฑ 3๊ณผ 5์ ๊ณต๋ฐฐ์๊ฐ ๋์ค๋ฉด ๋จผ์ ๊ฑฐ์น๋ 3์ if๋ฌธ์์ continue ๋จ์ผ๋ก ..
Quick sort '์๊ณ ๋ฆฌ์ฆ' ์ ๊ณต ์์ ์๊ฐ์ ๋์จ ๊ณผ์ ์ธ '1000๋ง๊ฐ ๋ฐ์ดํฐ ์ ๋ ฌ ํ ํด์ ๊ฐ ๊ตฌํ๊ธฐ'๋ฅผ ํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค. ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ํตํด ๊ตฌํ๋๋ ์ ๋ ฌ ๋ฐฉ๋ฒ ์๊ฐ ๋ณต์ก๋ ์ต์ : O(n^2) ํ๊ท : O(nlogn) ์ค๊ณ๋ฅผ ํตํด์ ๊ฐ์ ๊ฐ๋ฅํ ๋ถ๋ถ ๊ตฌํ ๊ณผ์ pivot์ ์ ํํ๋ค. ์์ชฝ ํฌ์ธํฐ๊ฐ ๋ฎ์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ์์ ์๋ฅผ ์ฐพ๋๋ค. ์๋์ชฝ ํฌ์ธํฐ๊ฐ ๋์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ํฐ ์๋ฅผ ์ฐพ๋๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ๊ตํํ๋ค. 2-4๋ฅผ ๋ฐ๋ณตํ๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ต์ฐจํ๋ค๋ฉด ํ์ฌ ํผ๋ฒ๊ณผ ํด๋น ์์น์ ๊ฐ์ ๊ตํํ๋ค. ํผ๋ฒ๊ณผ ํผ๋ฒ๋ณด๋ค ์์ section, ํผ๋ฒ๋ณด๋ค ํฐ section์ผ๋ก ๋๋๊ณ ๊ฐ section์ ๋ํด 1-5๋ฅผ ์คํํ๋ค. section์ ํฌ๊ธฐ๊ฐ 0 ๋๋ 1์ด๋ฉด ..
QuickSort ๋ ผ๋ฌธ brief Part One: Theory ์ด sorting์ ๋ ๊ฐ์ ๊ฐ๋จํ ๋ณด์กฐ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐ๋ ์ ์๋๋ฐ, ๊ฐ ๋ฌธ์ ๋ ์ด๋ฏธ ์๋ ค์ง ๋ฐฉ์์ผ๋ก ํ ์ ์๋ค. Partition : key๊ฐ์ dividing line์ ๋ฐ๋ผ ์ ์๋๋ก ๋๋์ด ์ด๋ถํ๋ ๊ฒ ์ค์ ๋ก ์ด dividing line์ ํ์น ์๊ณ , ์๋ค ํ ์ง๋ผ๋ ์ฐพ๊ธฐ ํ๋ ๋ฐ dividing line์ด ์กด์ฌํ๊ณ ๊ทธ๊ฒ์ ์์น๋ง ์๋ค๋ฉด item๋ค์ ์ฌ์ ๋ ฌํ๊ธฐ๋ ์ฌ์์ง๋ค. partition ๊ณผ์ ์ ๋ ฌ๋์ด์ผํ๋ ์์ดํ ์ ํค ์ค ํน์ ํค๋ฅผ ๊ณ ๋ฅธ๋ค. ์ด ํค๋ bound ๋ผ ๋ถ๋ฆฐ๋ค. dividing line ์๋์๋ bound๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ key๊ฐ์ด, ์์ชฝ์๋ ํฐ key ๊ฐ์ด ์ค๊ฒ ํ๋ค. dividing line์ ์์น๋ ๋ฏธ๋ฆฌ ์ ํ์..
/* 2020-03-19 ์ฐํฌ์ ์ฝ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ */ #define _CRT_SECURE_NO_WARNINGS #include #include #include #include int buffer[10000000]; // ์ ์ญ ๋ณ์๋ก ๋ฃ์ด์ผ stack overflow๊ฐ ๋์ง ์์ void fileOpen() { FILE *fp = fopen("d://algorithm/unsorted10000000.txt", "r"); int i = 0; int tmp = 0; if (fp == NULL) { printf("ํ์ผ์ ์ด ์ ์์ต๋๋ค.\n"); } while (fscanf(fp, "%d ", &tmp)!=EOF) { buffer[i++] = tmp; } fclose(fp); } void insertSortin..
์ฒซ๋ฒ์งธ ๊ณผ์ ์ด๋ค. ์๊ฐ ๋ณต์ก๋๊ฐ f(n)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์์์๊ฐ์ด 1 nanosecond == 10^(-9) second ์ด๋ผ๊ณ ํ ๋, ์ผ์ชฝ์ ํ์๋ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์ชฝ์ ์๊ฐ ๋ด์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ฃ๋๋ ค๋ฉด ์ต๋๋ก ์ด๋ค N๊น์ง ๊ณ์ฐํ ์ ์์์ง ์์๋ณด์. ๋ํ๋ก ํ๋๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด 1sec๋ 10^(9) nanosec ์ด๋ฏ๋ก n^2์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์์ n^2 = 10^(9) ๋ก ๋๊ณ ํ๋ฉด 1sec ๋ง์ ๊ณ์ฐ๋ ์ ์๋ n ๊ฐ์ด ๋์จ๋ค. n ๊ฐ์ ๋ชจ๋ ์ ์๋ก ๊ฐ์ ํ์๋ค.
์ธ๊ทธ๋จผํธ ํธ๋ฆฌ https://www.acmicpc.net/blog/view/9 ๋ฐฑ์ค๋ ๊ธ ๋ฐฐ์ด ํฌ๊ธฐ ๊ฒฐ์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ C++์ ๊ฒฝ์ฐ, vector ์๋ฃํ์ ์ฌ์ฉํ๋๋ฐ python์ผ๋ก ๊ตฌํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ผ๋ง๋ ๋์ด์ผ ํ ์ง ๊ฐ๋ ํ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด๋ณด์. 2์ ์ ๊ณฑ ์๊ฐ ๋ฆฌํ ๋ ธ๋์ ์(n)๋ก ์ฃผ์ด์ง๋ค๋ฉด ( ๋ถ์ํด์ผํ data ๊ฐฏ์๊ฐ 2์ ์ ๊ณฑ ์๋ผ๋ฉด ) ๊ฐ ๋จ๊ณ๋ง๋ค 1/2์ฉ ์ค์ด๋๊ฐ๋ฏ๋ก log(n)์ด ํ์ํ ์ด ๋จ๊ณ(ํ์ดํ)๊ฐ ๋๊ณ ์ ์ฒด ์ธต์ ๊ฐฏ์, ์ฆ ๋์ด(h)๋ log(n)+1์ด ๋๋ค. ์ต์์ ๋ ธ๋๋ถํฐ 2^(0)๊ฐ์ ๋ ธ๋๋ก ์์ํ์ฌ ์ธต์ด ์ฆ๊ฐํ ์๋ก 2์ ์ง์ ๋ํ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฝ์ฐฌ ์ด์ค ํธ๋ฆฌ(full binary tree)์ ์ด ๋ ธ๋ ..
Comment