列印一段數字中的所有質數的演算法

2021-07-10 22:50:29 字數 1153 閱讀 7802

簡單實現如下。

演算法一:

這個演算法的中心思想是迴圈所有需要判斷的數字,然後逐一進行取模判斷。

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 前進 左邊賦...