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표기법 사용
- 시간복잡도 /공간복잡도?