์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[TIL ํ”„๋กœ์ ํŠธ] 9์ผ์ฐจ - ์‹œ๊ฐ„ ๋ณต์žก๋„ 1

KiTFOx 2025. 5. 28. 18:05
728x90


๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋‚˜ ๊ณต๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ˆ˜ํ•™์  ํ‘œ๊ธฐ๋ฒ•
์ž…๋ ฅ ํฌ๊ธฐ n์— ๋Œ€ํ•ด ๊ฐ€์žฅ ์ง€๋ฐฐ์ ์ธ ์—ฐ์‚ฐ ํšŸ์ˆ˜(์„ฑ์žฅ๋ฅ )๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์œผ๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜„ํ•จ

a = arr[0] ์˜ ๊ฒฝ์šฐ ์ž…๋ ฅ ํฌ๊ธฐ์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„์œผ๋กœ O(1)
์ด์ง„ ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ ์ž…๋ ฅ์„ ์ ˆ๋ฐ˜์”ฉ ์ค„์ด๊ธฐ ๋•Œ๋ฌธ์— O(log n)
์„ ํ˜• ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ ํ•œ ๋ฒˆ์”ฉ ๋‹ค ํ›‘๊ธฐ ๋•Œ๋ฌธ์— O(n)
๋จธ์ง€ ์ •๋ ฌ์˜ ๊ฒฝ์šฐ ๊ฑฐ์˜ ๋ชจ๋“  ํšจ์œจ์ ์ธ ์ •๋ ฌ๋กœ O(n log n)
์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์˜ ๊ฒฝ์šฐ O(n^2)
์žฌ๊ท€ ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ O(2^n)
์™„์ „ํƒ์ƒ‰(์ˆœ์—ด)์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(n!)

O(n+n^2)์˜ ๊ฒฝ์šฐ n^2๊ฐ€ n๋ณด๋‹ค ํ›จ์”ฌ ๋นจ๋ฆฌ ์ปค์ง์œผ๋กœ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ๋Š” O(n^2)๋กœ ํ‘œ๊ธฐํ•จ

void example1(int n){
	for(int i=0; i<n;i++){
		cout << i << endl;
	}
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)

void example2(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<i+j<<endl;
		}
	}
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n^2)

void example3(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<5;j++){
			cout<<i+j<<endl;
		}
	}
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)
์•ˆ์ชฝ ๋ฃจํ”„์˜ ๊ฒฝ์šฐ์—๋Š” 5๊นŒ์ง€๋งŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์‹œํ•จ์œผ๋กœ O(n)

void example4(int n){
	int i=1;
	while(i<n){
		cout<<i<<endl;
		i*=3;
	}
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log n)
i *=3 ์€ 3๋ฐฐ์”ฉ ์ฆ๊ฐ€ํ•ด์„œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” log3(n)


void example5(int n){
	if(n==0) return;
	cout<<n<<endl;
	example5(n-1);
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)
ํ•œ๋ฒˆ ํ˜ธ์ถœ๋งˆ๋‹ค 1์”ฉ ์ค„์–ด๋“ค์–ด์„œ ์ด n๋ฒˆ ํ˜ธ์ถœ


void recur(int n){
	if(n==0) return;
	recur(n-1);
	recur(n-1);
}

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(2^n)
์ด์ง„ ํŠธ๋ฆฌ์ฒ˜๋Ÿผ ํผ์ง€๊ธฐ๋•Œ๋ฌธ์— ์ด ํ˜ธ์ถœ์ˆ˜๋Š” 2^n-1 ๋ฒˆ










๋ฐ˜์‘ํ˜•