1、我们知道第一个质数是2,第二个质数是3,第三个质数是5......请你计算第2023个质数?
就是两个循环,外循环一个一个遍历数,内循环判断是否为质数。
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<>();
for(int i = 2;i<=20000;i++){
int cnt=0;
for(int j = 2;j<i;j++){
if(i%j==0){
cnt++;
break;
}
}
if(cnt==0){
list.add(i);
}
}
System.out.println(list.get(2022));
}
}
结果是17597
2.排序:[10,1,35,61,89,36,55]
冒泡排序:
每一趟将最大的放最右边,每一次左右交换较大的至右边
//冒泡排序
public class Main {
public static void main(String[] args) {
int a [] = {10,1,35,61,89,36,55};
for(int i =0;i < a.length-1;i++){ //趟
for(int j=0;j<a.length-1-i;j++){ //次
if(a[j]>a[j+1]){
int temp = a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(int i = 0; i <a.length;i++)
System.out.print(a[i]+" ");
}
}
选择排序:
第一次:从未排序的数据元素里面,选择一个最小的(最大的)元素,然后和第一位元素交换
位置。
第二次:选出第二小的(大的)元素,然后和第二位元素交换位置。
//选择排序
public class Main {
public static void main(String[] args) {
int a [] = {10,1,35,61,89,36,55};
for(int i = 0; i<a.length;i++){
int min = a[i];
int index=i;
for(int j= i;j<a.length;j++){
if(a[j]<min){
min = a[j];
index = j;
}
}
a[index]=a[i];
a[i]= min;
}
for(int i = 0; i <a.length;i++)
System.out.print(a[i]+" ");
}
}
插入排序:
将数组分为已排序和未排序两部分,每次从未排序部分取出一个元素,插入到已排序部分的适当位置。
public class Main {
public static void main(String[] args) {
int a [] = {10,1,35,61,89,36,55};
for(int i = 1 ; i< a.length;i++){
int key = a[i];
int j = i-1;
while(j>=0&&a[j]>key){
a[j+1]=a[j];
j--;
}
a[j+1]=key;
}
for(int i = 0; i <a.length;i++)
System.out.print(a[i]+" ");
}
}
结果是[1,10,35,36,55,61,89]