篩法求素數,選擇法排序

1.篩法求素數
篩法:使用篩法求N以內的素數,從2開始,不斷剔除2的倍數,然後從剩下的數字中,選擇最小的數3(這個數一定會是素數),然後剔除所有3的倍數,依次類推,最後剩下的數就全是素數了。(是不斷篩選的過程)。
實際java的實現(不爲篩法的實現):
while(Scan.hasNext()){
int n=Scan.nextInt();
for(int i=2;i<=n;i++){
boolean x=true;
for(int j=2;j<i;j++){
if(i%j==0)
x=false;
}
if(x)
System.out.println(i);
}
}
2.選擇法排序:簡單選擇排序的基本思想:第1趟,在待排序記錄r[1] ~ r[n]中選出最小的記錄,將它與r[1]交換;第2趟,在待排序記錄r[2]~ r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
例:----用選擇法對10個整數從小到大排序。 代碼:
while(Scan.hasNext()){
int[] num=new int[10];
for(int i=0;i<10;i++){
num[i]=Scan.nextInt();
}
int min; int p=0;
for(int j=0;j<9;j++){
min=Integer.MAX_VALUE;
for(int i=j;i<10;i++){
if(num[i]<=min) {min=num[i];
p=i;
}
}
if(j!=p){
num[j]=num[j]^num[p];
num[p]=num[p]^num[j];
num[j]=num[j]^num[p];}
System.out.println(num[j]);
}
System.out.println(num[9]);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章