簡單實現如下。
演算法一:
這個演算法的中心思想是迴圈所有需要判斷的數字,然後逐一進行取模判斷。
public
class isprime
public
static
void
printprimenumber(int
from, int to)
system.out.println(from + "到" + to + "間的質數有:");
boolean isprime = true;
for(int i = from; i <= to; i++)
}if(isprime)
system.out.print(i + " ");
}date d2 = new date();
system.out.println();
system.out.println(d2.gettime()-d1.gettime());
}}
演算法二
這個演算法的中心思想是迴圈所有需要判斷的數字,然後逐一進行取模判斷。(取模判斷的範圍變小了,我們把i進行開方,因為所有能夠被整除的數字一定小於它的開方)
public
class isprime
public
static
void
printprimenumber2(int
from, int to)
system.out.println(from + "到" + to + "間的質數有:");
boolean isprime = true;
for(int i = from; i <= to; i++)
}if(isprime)
system.out.print(i + " ");
}date d2 = new date();
system.out.println();
system.out.println(d2.gettime()-d1.gettime());
}}
演算法二比演算法一效率高了不少:
演算法一執行花費了:1514毫秒。
演算法二執行花費了:47毫秒。
演算法題 翻轉鍊錶中的一段
題目 給出乙個鍊錶中的兩個指標p1和p2,將其之間的結點翻轉。思路 可以通過交換結點內的值來實現結點的翻轉,空間為o n 如果要求不能交換值,那麼僅憑p1和p2是無法翻轉的,因為不知道p1之前的節點,會掉鏈,只能翻轉p1之後的鍊錶,這個過程就類似於給定乙個頭節點,翻轉之後的鍊錶了 可以使用頭插法。交...
一段很搞笑的排序演算法
public class sleepsort sortthread sortthreads new sortthread ints.length for int i 0 i sortthreads.length i for int i 0 i sortthreads.length i class s...
翻轉鍊錶中的一段
92 給你單鏈表的頭節點 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 鍊錶 翻轉 從中間指定位置,之前做過類似的 迭代法 3步 1 儲存當前節點的後乙個節點,2 後項指前項 3 前進 左邊賦...