[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 3. Tony Hoare :: QuickSort ๋…ผ๋ฌธ ํ•ด์„ํ•˜๊ธฐ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 26. 16:56

QuickSort ๋…ผ๋ฌธ brief Part One: Theory ์ด sorting์€ ๋‘ ๊ฐœ์˜ ๊ฐ„๋‹จํ•œ ๋ณด์กฐ๋ฌธ์ œ๋กœ ๋‚˜๋‰˜์–ด ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์•Œ๋ ค์ง„ ๋ฐฉ์‹์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. Partition : key๊ฐ’์„ dividing line์— ๋”ฐ๋ผ ์œ„ ์•„๋ž˜๋กœ ๋‚˜๋ˆ„์–ด ์ด๋ถ„ํ•˜๋Š” ๊ฒƒ ์‹ค์ œ๋กœ ์ด dividing line์€ ํ”์น˜ ์•Š๊ณ , ์žˆ๋‹ค ํ• ์ง€๋ผ๋„ ์ฐพ๊ธฐ ํž˜๋“ ๋ฐ dividing line์ด ์กด์žฌํ•˜๊ณ  ๊ทธ๊ฒƒ์˜ ์œ„์น˜๋งŒ ์•ˆ๋‹ค๋ฉด item๋“ค์„ ์žฌ์ •๋ ฌํ•˜๊ธฐ๋Š” ์‰ฌ์›Œ์ง„๋‹ค. partition ๊ณผ์ • ์ •๋ ฌ๋˜์–ด์•ผํ•˜๋Š” ์•„์ดํ…œ์˜ ํ‚ค ์ค‘ ํŠน์ • ํ‚ค๋ฅผ ๊ณ ๋ฅธ๋‹ค. ์ด ํ‚ค๋Š” bound ๋ผ ๋ถˆ๋ฆฐ๋‹ค. dividing line ์•„๋ž˜์—๋Š” bound๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ key๊ฐ’์ด, ์œ„์ชฝ์—๋Š” ํฐ key ๊ฐ’์ด ์˜ค๊ฒŒ ํ•œ๋‹ค. dividing line์˜ ์œ„์น˜๋Š” ๋ฏธ๋ฆฌ ์•Œ ํ•„์š”..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 2. 1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์ •๋ ฌ ์‹œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 25. 20:01

/* 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..

[python] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: 7์žฅ ์ •๋ฆฌ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 29. 12:46

7. ๋ถ„ํ•  ์ •๋ณต 7.1 ๋„์ž… ๋ถ„ํ•  ์ •๋ณต( Divide & Conquer)์€ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋””์ž์ธ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ, ๊ฐ๊ฐœ ๊ฒฉํŒŒ๋ผ๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‘˜ ์ด์ƒ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆˆ ํ›„, ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ๊ฐ๊ฐ์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ด์šฉํ•ด ์ „์ฒด์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์„ฑ divide ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ•  merge ๊ฐ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ „์ฒด ๋ฌธ์ œ์˜ ๋‹ต์œผ๋กœ ๋ณ‘ํ•ฉ base case ๋”์ด์ƒ ๋‹ต์„ ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ  ํ’€ ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์ž‘์€ ๋ฌธ์ œ ์ ์šฉ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์˜ ํŠน์„ฑ ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ด์•ผํ•จ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์„ ์กฐํ•ฉํ•ด ์ „์ฒด ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผํ•จ ์žฅ์  ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—์„œ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ด์คŒ ์˜ˆ์ œ : ์ˆ˜์—ด์˜ ๋น ๋ฅธ ํ•ฉ๊ณผ ํ–‰๋ ฌ์˜ ๋น ๋ฅธ..