U E D R , A S I H C RSS

STL/search

Search

  • ปจ…Œด๋„ˆ—„œ ๊ฐ’„ ฐพ๋Š”๋‹ค. ฐพœผ๋ฉด 1, ๋ชปฐพœผ๋ฉด 0„ ๋ฆฌ„•ดค€๋‹ค.
  • STL—„œ๋Š” ตœ ˜ ๊ฒ€ƒ‰ ๊ธฐ๋Šฅ„ ž๋ž‘•˜๋Š”(ฮธ(logn)) Binary Search๋ฅผ  œ๊ณต•ดค€๋‹ค.
  • Binary Search๊ฐ€ ๋ฌด—‡ด๋ƒ? ‚ฌ๋žŒด ‚ฌ „„ ฐพ„๋•Œ™€ ๋น„Šท•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
    1. ‚ฌ „˜ ๋ฐ˜„ Žผนœ๋‹ค.
    2. ๋งŒ•ฝ— ๋‚ด๊ฐ€ ฐพ๋Š”๊ฐ’ด ๊ทธ๊ฒƒ๋ณด๋‹ค ๋’ค— žˆœผ๋ฉด ๋‚˜๋จธง€ ๋’ท๋ถ€๋ถ„˜ ๋ฐ˜„ Žผนœ๋‹ค.
    3. ๊ทธ๊ฒƒ ๋ณด๋‹จ •ž— ž๋ฃŒ๊ฐ€ กดžฌ•˜๋ฉด ฒ˜Œ Žผนœ ๊ณณ๊ณผ ง€๊ธˆ Žผนœ๊ณณ˜ ๊ฐ€šด๋ฐ๋ฅผ Žผนœ๋‹ค.

  • ด ๊ณผ •„ žฌ๊ท€ œผ๋กœ •˜๋ฉด ๊ฐ’„ ฐพ„ˆ˜ žˆ๋‹ค. ด๋Ÿฐ ƒƒ‰ ๋ฐฉ๋ฒ•„ Binary Search ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ด๊ฒƒด „๋ฆฝ•˜๋ ค๋ฉด, ›†Œ๋“คด  •๋ ฌ๋˜–ด žˆ๊ณ , ž„˜ ‘๊ทผ(random)ด ๊ฐ€๋Šฅ•ด•ผ •œ๋‹ค.  •๋ ฌด •ˆ๋˜–ด 2,3 ๋ฒˆ˜ ๊ณผ •„ „ƒ• ˆ˜ —†๋‹ค.

  • STL—„œ๋Š” ตœ ˜ กฐ•ฉœผ๋กœ, sort + binary_search๋ฅผ ถ”ฒœ•ดค€๋‹ค. ˜ˆ œ๋ฅผ ๋ณดž.

~cpp 
#include <iostream>
#include <vector>
#include <algorithm>	// search •Œ๊ณ ๋ฆฌฆ˜ “ฐ๊ธฐ œ„•œ๊ฒƒ

using namespace std;

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());

	if(binary_search(v.begin(), v.end(), 85))
		cout << "ฐพ•˜๋‹ค.";
	else 
		cout << "๋ชปฐพ•˜๋‹ค.";

	return 0;
}
  • sort•ดค€๋‹คŒ binary_search()˜ ธž๋กœ๋Š” ‹œž‘๋ถ€๋ถ„, ๋๋ถ€๋ถ„, ฐพ๊ณ ž •˜๋Š” ›†Œ. ด๋ ‡๊ฒŒ ๋„–ดฃผ๋ฉด ๋œ๋‹ค.
  • list ปจ…Œด๋„ˆ™€ ๊ฐ™ด ž„˜ ‘๊ทผ iterator๋ฅผ ง€›•˜ง€ •Š๋Š” ปจ…Œด๋„ˆ—๋Š”  šฉ•  ˆ˜ —†๋‹ค.
----
STL
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:58
Processing time 0.0089 sec