一、判斷乙個數是否是素數
思想:拿比自己小的整數依次進行比較
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...