Pancake sort
ํฌ์ผ์ดํฌ ์ ๋ ฌ์ ๊ณ ์ ์ ์ด๊ณ ์ฐ์ค๊ฝ์ค๋ฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ค.
๋ค์ง์ผ๋ฉด์ ์ ๋ ฌ์ ํด๋๊ฐ๋๊ฒ ํฌ์ผ์ดํฌ ๋ค์ง๋๊ฑฐ๊ฐ๋ค๊ณ ์ด๋ฆ์ด ์ด๋ ๊ฒ ๋ถ์๋ค.
์๊ฐ๋ณต์ก๋๋ O(N^2)์ด๋ผ ๋ณ๋ก ์ธ๋ชจ๋ ์๋ค.
selection sort์ ์๋ฆฌ๋ ๋น์ทํ๋ค.
- ์์:๋งจ๋ ๋ฒ์์์ ํ ํฌ์ผ์ดํฌ(๊ฐ์ฅ ํฐ ๊ฐ)๋ฅผ ์ฐพ๋๋ค.
- ์์ ๋ฒ์๋ถํฐ ํ ๋ถ๋ถ๊น์ง๋ฅผ ๋ค์ง๋๋ค. ์ด ๋ ํ ๋ถ๋ถ์ด ์์ฐํ ๋งจ ์์ผ๋ก ๊ฐ๋ค.
- ํ ๋ถ๋ถ์์ ๋งจ ๋๊น์ง๋ฅผ ๋ฒ์๋ก ์ก์์ ๋ ๋ค์ง๋๋ค. ํ ๋ถ๋ถ์ด ์์ฐํ ๋งจ ๋ค๋ก ๊ฐ๋ค.
- ์์:๋งจ๋-1 ๋ฒ์์์ ํ ํฌ ์ผ์ดํฌ๋ฅผ ์ฐพ๋๋ค.
- ... ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ๋ถํฐ ๋งจ ๋์ ์ฐจ๊ณก์ฐจ๊ณก ์์ด๋ฉฐ ๋๋ด๋ ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๊ฐ ์์ฑ๋๋ค.
๋ง ์์ฒญ ๋น ๋ฅธ๊ฒ๋ ์๋๊ณ ๋ค์ง๋ ์ฐ์ฐ์ด ๋๋ฌด ๋ง์์ ๋นํจ์จ์ ์ธ ํธ์ด๋ค. ๊ตณ์ด ์ฐ๋ ค๋ค ํ์๋ ์๋ค.
์๋๋ 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