Algorithm/C++

[21.07.26~27] APS 시간복잡도, 배열 기초

문래동까마귀 2021. 7. 31. 23:57
/*
-----------------------------------------0727
#include <iostream>
#include <vector> //str사용시

using namespace std;

int de;
int main(){
	int n = 5;
	vector<int> vect(5); //배열크기 초기선언

	for (int i = 0; i < 5; i++) {
		int a;
		cin >> a;
		vect.push_back(a); //배열의 크기가 초기선언되어있을때는 그후로 추가되며 전체크기가 커짐
	}

	vect.size(); //for문 사용시 O(1)

	int ret=vect.back(); //배열 확인후 제거
	vect.pop_back();
	ret=vect.back();
	vect.pop_back();
	
	//vector<int> vect(n);
	//for (int i = 0; i < 5; i++) {
	//	cin >> vect[i];
	//}
	

return 0;
}
--------------------------------------
int arr[5] = { 1,2,3,1,2 };

	cout << arr[1 + 1]; //a[x]위치에서 y만큼 떨어진

-------------------------------------시계출력
#include <iostream>

using namespace std;

int main() {
	for (int 시침 = 0; 시침 < 12; 시침++) {
		for (int 분침 = 0; 분침 < 60; 분침++) {
			cout << 시침 << "h" << 분침 << "m" << endl;
		}
	}
}
------------------------------------------------------
#include <iostream>
#include <algorithm>
#include <vector>


using namespace std;

int de;

int main() {

	vector<int> vect;
	de = -1;
	vector<int> arr = { 5,3,7,1,9 };

	vect.push_back(5);
	vect.push_back(3);
	vect.push_back(7);
	vect.push_back(1);
	vect.push_back(9);

	sort(vect.begin(), vect.end());

	sort(arr.begin(), arr.end(), greater<int>());
	de = -1; //브레이크포인트 더미 잡아주기

	for (int i = 0; i < 5; i++) {
		cout << vect[i] << " ";
	}

	cout << "\n";

	for (int i = 0; i < 5; i++) {
		cout << arr[i] << " ";
	}

	return 0;
}
-------------------------------------------------------------


int arr[5] = { 4,2,1,3,7 };

//sort(arr, arr + 5, greater<int>()); 내림차순 정렬
sort(arr, arr + 5); //default 오름차순 정렬

for (int i = 0; i < 5; i++) {
	cout << arr[i] << " ";
}

cout << "\n";

sort(arr, arr + 5, greater<int>());

for (int i = 0; i < 5; i++) {
	cout << arr[i] << " ";
}

// de = -1; //디버깅확인할때사용

-----------------------------------------

#include <cstring> //#include <sting.h>와 같고 <string>과는 다름
#include <cmath>

char arr[10] = "asda";
string str = "asda;"

if (str == "asda") {
	cout << "같다";
}
if (strcmp(arr, "asda") == 0) { //strcmp

}

*/

 

- VS 단축키

break point : F9
debug(디버그모드 진입) : F5
step over(한줄씩 실행) : F10 -> 한줄단위로 실행
step intp(함수 들어가기) : F11
resume(다음 브레이크 포인트까지 실행) : F5
run to cursor(커서위치로 실행) : crtl + F10
terminate(디버그모드 종료) : shift  + F5

조사식 창 열기 : ctrl + alt + w
(잠시후 1누르기 -> 디버그 모드에서만 가능)


-------------------------------------------------------

알고리즘 성능측정

- 시간복잡도(빅-오 표기법)

- 시간 복잡도 함수 중에서 가장 큰 영향력을 주는 n에 대한 항만을 표시

- 계수 생략

 ->n개의 데이터를 입력 받아 저장한 후 각 데이터에 1씩 증가시킨 후 각 데이터를 화면에 출력하는 알고리즘의 시간복잡도는? = O(n)


- 암기
시간복잡도 nlongn -> 밑이  10이아닌 2;
기본적인 sort (오름, 내림)/ vect (배열)
빅O표기법 사용

- 시간복잡도 /공간복잡도?