判斷乙個數是否是素數

2022-05-20 15:02:12 字數 1375 閱讀 1571

一、判斷乙個數是否是素數

思想:拿比自己小的整數依次進行比較

public string issu(int a)

}return

"是";

}//演算法改進;只要小於該數字的二次根就可以了,因為大於該數字的二次根的數字也是不能整除的

public string issu(int a)

}return

"是";

}二、實現乙個氣泡排序的演算法

//思想:依次比較相鄰兩個數的大小,大數放在後面,小數放在前面,直至比較最後兩個數,將小數放在前面,大數放在後面,重複以上過程public

void sort(int array)}}

}平均時間複雜度為o(n2) 

最好時間複雜度為o(n)

三、插入排序演算法(用於少量資料時候)

//思想:在乙個已經排序好的序列中插入乙個資料private

static

int insertsort(int array) 

}return array;

}平均時間複雜度為o(n

2) 最好時間複雜度為o(n)

四、快速插入排序(效率較高)

快速排序思想:

一趟快速排序是:

1,隨機產生一數列,選取第乙個數(這裡也可選其他的數)作為比較的基石,假設這個數為x,這樣x=a[0];設兩個變數i=0,j=n-1;n是這個數列的長度

2,從前面開始找,找到第乙個比a[0]大的數,找到了就與x交換

3,從後面開始找,找到第乙個比a[0]小的數,找到了就與x交換

4,重複步驟2,3,直到i=j;

這樣一趟快速排序就完成了;第一趟完成之後,x左邊的數就全部小於x了,x右邊的數九全部大於x,然後採用遞迴方式對x左邊的數和x右邊的數進行快速排序。

/**  

* @param pdata 需要排序的陣列  

* @param left  左邊的位置,初始值為0  

* @param right 右邊的位置,初始值為陣列長度  

*/public

static

void quicksort(int pdata,int left,int right)   

//交換中樞   

pdata[left] = pdata[j];   

pdata[j] = first;   

//遞迴快排中樞左邊的資料   

if(left

quicksort(pdata,left,j);   

//遞迴快排中樞右邊的資料   

if(right>i)   

quicksort(pdata,i,right);   

} 來自為知筆記(wiz)

判斷乙個數是否是素數

素數釋義 曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 public boolean isprime int n for int i 2 i從2開始,一直到小於其自身,依次判斷能否被n整除即可,能夠整除則不是質數,否則是質數...

shell判斷乙個數是否是素數

bin bash author cuipeng read p 請輸入乙個大於1的整數 num num1 bc sqrt num reult true for x in seq 2 num1 do num2 expr num x if num2 eq 0 then reult false break ...

判斷乙個數是否為素數

判斷乙個數n是否是素數,只需要判斷它是否能被2到n之間的數整除就行了,若不能被整除,則說明是素數。考慮到某數大於n 2時,n不可能被該數整除,故只需遍歷2 n 2即可。更進一步,由合數定理可知,若乙個數是合數,則它的最小質因數必小於等於該數的平方根,由此可得更為高效的 如下 include incl...