Pancake sort

ํŒฌ์ผ€์ดํฌ ์ •๋ ฌ์€ ๊ณ ์ „์ ์ด๊ณ  ์šฐ์Šค๊ฝ์Šค๋Ÿฐ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋‹ค.
๋’ค์ง‘์œผ๋ฉด์„œ ์ •๋ ฌ์„ ํ•ด๋‚˜๊ฐ€๋Š”๊ฒŒ ํŒฌ์ผ€์ดํฌ ๋’ค์ง‘๋Š”๊ฑฐ๊ฐ™๋‹ค๊ณ  ์ด๋ฆ„์ด ์ด๋ ‡๊ฒŒ ๋ถ™์—ˆ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N^2)์ด๋ผ ๋ณ„๋กœ ์“ธ๋ชจ๋Š” ์—†๋‹ค.

selection sort์™€ ์›๋ฆฌ๋Š” ๋น„์Šทํ•˜๋‹ค.

  1. ์‹œ์ž‘:๋งจ๋ ๋ฒ”์œ„์—์„œ ํƒ„ ํŒฌ์ผ€์ดํฌ(๊ฐ€์žฅ ํฐ ๊ฐ’)๋ฅผ ์ฐพ๋Š”๋‹ค.
  2. ์‹œ์ž‘ ๋ฒ”์œ„๋ถ€ํ„ฐ ํƒ„ ๋ถ€๋ถ„๊นŒ์ง€๋ฅผ ๋’ค์ง‘๋Š”๋‹ค. ์ด ๋•Œ ํƒ„ ๋ถ€๋ถ„์ด ์ž์—ฐํžˆ ๋งจ ์•ž์œผ๋กœ ๊ฐ„๋‹ค.
  3. ํƒ„ ๋ถ€๋ถ„์—์„œ ๋งจ ๋๊นŒ์ง€๋ฅผ ๋ฒ”์œ„๋กœ ์žก์•„์„œ ๋˜ ๋’ค์ง‘๋Š”๋‹ค. ํƒ„ ๋ถ€๋ถ„์ด ์ž์—ฐํžˆ ๋งจ ๋’ค๋กœ ๊ฐ„๋‹ค.
  4. ์‹œ์ž‘:๋งจ๋-1 ๋ฒ”์œ„์—์„œ ํƒ„ ํŒฌ ์ผ€์ดํฌ๋ฅผ ์ฐพ๋Š”๋‹ค.
  5. ... ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๊ฐ€์žฅ ํฐ ๊ฐ’๋ถ€ํ„ฐ ๋งจ ๋์— ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์ด๋ฉฐ ๋๋‚ด๋Š” ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๊ฐ€ ์™„์„ฑ๋œ๋‹ค.

๋ง‰ ์—„์ฒญ ๋น ๋ฅธ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ๋’ค์ง‘๋Š” ์—ฐ์‚ฐ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋น„ํšจ์œจ์ ์ธ ํŽธ์ด๋‹ค. ๊ตณ์ด ์“ฐ๋ ค๋“ค ํ•„์š”๋Š” ์—†๋‹ค.

์•„๋ž˜๋Š” Rust๋กœ ์ž‘์„ฑ๋œ ๊ตฌํ˜„๋ก€๋‹ค.
https://github.com/myyrakle/buldak/blob/main/src/lib/pancake.rs


https://www.geeksforgeeks.org/pancake-sorting/
https://en.wikipedia.org/wiki/Pancake_sorting