sort ¶
- ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ์ฒจ ๋ฐฐ์ธ๋ sort ์ง๋๊ฑธ ๋ง์ด ํ๋ค. ์ํ์๊ฐ์ด ฮธ(n*n)์ด๋ ๋๋ ์ํธ๋ฅผ ์ง๊ณค ํ๋ค.
- STL์์๋ Quick Sort๋ฅผ ์ฝ๊ฐ ๋ณํํ Sort ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ค.
- ์์ ๋ฅผ ๋ณด์.
~cpp #include <iostream> #include <vector> #include <algorithm> // sort ์๊ณ ๋ฆฌ์ฆ ์ฐ๊ธฐ ์ํ๊ฒ #include <functional> // less, greater ์ฐ๊ธฐ ์ํ๊ฒ using namespace std; typedef vector<int>::iterator VIIT; int main() { int ar[10] = {45,12,76,43,75,32,85,32,19,98}; vector<int> v(&ar[0], &ar[10]); sort(v.begin(), v.end(), less<int>()); // ์ค๋ฆ์ฐจ์ for(VIIT it = v.begin() ; it != v.end(); ++it) cout << *it << endl; cout << endl; sort(v.begin(), v.end(), greater<int>()); // ๋ด๋ฆผ์ฐจ์ for(VIIT it = v.begin() ; it != v.end(); ++it) cout << *it << endl; // ๊ฐ๋จํ๊ฒ ์ค๋ฆ์ฐจ์ ์ธ๊ฑฐ๋ฉด <functional> ์์ ๊ณ sort(v.begin(), v.end()) ํ๋ฉด ๋๋ค. return 0; }
- STL์ ์ด๋ฐ ํธ๋ฆฌํจ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ฃ๊ตฌ์กฐ ๋ง๋๋๋ผ ์ ์ฐ๋ ์๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํ๋ ์๊ฐ์ผ๋ก ๋๋ ค์ค๋ค.
- ํ๊ฐ์ง ์ฃผ์ํ ์ . ์ด sort์๊ณ ๋ฆฌ์ฆ์ ์ปจํ
์ด๋๊ฐ ์์ ์ ๊ทผ(Random Access)์ ํ์ฉํ๋ค๋ ๊ฐ์ ํ์ ๋ง๋ ๊ฒ์ด๋ค. vector๋ deque์ฒ๋ผ ์์ ์ ๊ทผ์ ํ์ฉํ๋ ์ปจํ
์ด๋๋ ์ด๊ฑธ ์ธ์ ์์ง๋ง. list๋ ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํด์ ์ฌ์ฉํ ์ ์๋ค. -l5 ์ด๋ฐ ์ ๊ทผ์ด ์๋๋ค๋ ์๋ฏธ - ๋ฐ๋ผ์ list์์๋ ์ปจํ
์ด๋ ๋ด๋ถ์์ sort๋ฉ์๋๋ฅผ ์ ๊ณตํด ์ค๋ค.
STL