leetcode-master/algorithm_interview_course/chapter_two/section_2.cpp

66 lines
1.4 KiB
C++

/* ************************************************************************
> File Name: algorithm_2.cpp
> Author: sunxiuyang
> Mail: sunxiuyang04@gmail.com
> Created Time: Thu Jan 30 16:09:35 2020
> Description:
************************************************************************/
#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
using namespace chrono;
// O(n)
void function1(long long n) {
long long k = 0;
for (long long i = 0; i < n; i++) {
k++;
}
}
// O(n^2)
void function2(long long n) {
long long k = 0;
for (long long i = 0; i < n; i++) {
for (long j = 0; j < n; j++) {
k++;
}
}
}
// O(nlogn)
void function3(long long n) {
long long k = 0;
for (long long i = 0; i < n; i++) {
for (long long j = 1; j < n; j = j*2) { // 注意这里j=1
k++;
}
}
}
void time_test() {
long long n; // 数据规模
while (cin>>n) {
milliseconds start_time = duration_cast<milliseconds >(
system_clock::now().time_since_epoch()
);
function3(n);
milliseconds end_time = duration_cast<milliseconds >(
system_clock::now().time_since_epoch()
);
cout << milliseconds(end_time).count() - milliseconds(start_time).count()
<<" ms"<< endl;
}
}
int main() {
time_test();
}