您的位置:首页 > 其它

简单时间复杂度大O记法

2018-01-28 00:00 190 查看
摘要: 适合我这种野生程序员,其实还是比较容易理解的,难的另说。

import org.junit.Test;

/**
* 时间复杂度计算
* 算法摘抄自书籍和网络,这玩意,做多了就有感觉了,^.^
* @author RippleChan
* @date 2018-01-27
* @time 21:57
*/
public class BigO {

/**
* O(1)
*/
public void test1() {
int n = 1;
int b = n + 1;
}

/**
* O(n)
*/
public void test2() {
int n = 100;
for (int i = 0; i < n; i++) {
//程序运行n次
}
}

/**
* O(logn)
*/
@Test
public void test3() {
int n = 100;
int count = 1;
while (count < n) {
count = count * 2;
System.out.println(count);
}
}

/**
* O(n2)
*/
@Test
public void test4() {
int n = 2;
for (int i = 0; i < n; i++) {
for (int j = 0;j<n;j++) {
System.out.println("test");
}
}
}

/**
* O(m*n)
*/
@Test
public void test5() {
int n = 2;
int m = 3;
for (int i = 0;i<n;i++) {
for (int j = 0; j < m; j++) {
System.out.println("test");
}
}
}

/**
* O(n2)
*/
@Test
public void test6() {
int n = 5;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
System.out.println("test");
}
}
}

/**
* O(n)
*/
@Test
public void test7() {
int n = 100;
for (int i = 0;i<n;i++) {
this.function7(i);
}
}

private void function7(int i) {
System.out.println(i);
}

/**
* O(n)
*/
@Test
public void test8() {
int n = 100;
for (int i = 0; i < n; i++) {
this.function8(n);
}
}

private void function8(int n) {
for (int j = 0;j<n;j++) {
System.out.println(j);
}
}

/**
* O(n3)
*/
@Test
public void test9() {
int n = 100;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
for (int k = 1; k <= j; k++) {
System.out.println("test");
}
}
}
}

/**
* O(log n)
*/
public void test10() {
int i = 0;
i = i + 1;
int n = 100;
while (i <= n) {
i = i * 2;
}
}

/**
* O(n)
*/
@Test
public void test11() {
int i = 1;
int k = 0;
int n = 100;
while (i <= n - 1) {
k += 100 * i;
i++;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  时间复杂度
相关文章推荐