c語言之篩選法

2021-09-28 23:21:52 字數 530 閱讀 3150

例:用篩選法求100以內的素數

首先解釋一下篩選法的步驟:

<1> 先將1挖掉(因為1不是素數)。

<2> 用2去除它後面的各個數,把能被2整除的數挖掉,即把2的倍數挖掉。

<3> 用3去除它後面的各數,把3的倍數挖掉。

<4> 分別用5…各數作為除數去除這些數以後的各數。

上述操作需要乙個很大的容器去裝載所有數的集合,只要滿足上述條件,即2的n次方的全部置0,3的n次方的全部置0,4的n次方的全部置0.。。。一直到這個資料集合的末尾,這樣一來不為0的數就是素數了,然後按下標在裡面進行查詢就好了

**如下:

void

siftprime1

(int n)

arr[0]

=0;//將1置為0;

for(i=

2;i<=n;i++)}

for(i=

0;i)printf

("\n");

free

(arr)

;}

C語言之希爾排序法(4)

希爾排序 shellsort 是插入排序的一種 是針對直接插入排序演算法的改進演算法先將要排序的一組數按某個增量gap分成若干組,每組中記錄的下標相差gap.對每組中全部元素進行排序,然後再用乙個較小的增量對它進行,在每組中再進行排序。當增量減到1時,整個要排序的數被分成一組,排序完成。演算法 希爾...

篩選法的C 實現

篩選法 介紹 篩選法又稱篩法,是求不超過自然數n n 1 的所有質數的一種方法。據說是古希臘的埃拉託斯特尼 eratosthenes,約西元前274 194年 發明的,又稱埃拉託斯特尼篩子。具體做法是 先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所...

C語言之氣泡排序 快速排序法 希爾排序法

眾所周知程式設計排序方法眾多而且程式的好壞就取決於演算法的使用 下面是博主現在會的幾種排序方法希望對大家有所幫助。希爾排序法 author stylle date 2020 11 14 15 52 03 lasteditors stylle lastedittime 2020 11 14 15 52...