secction 1 排序算法
以下算法输出结果均为从小到大排序。
直接插入排序
com.sxy.insertSort
//直接插入排序
public class SortTest{
public static void sort(int[] a){
if(a==null&&a.length==0){
return;
}
int len=a.length;
for(int i=1;i<len;i++){//第一个数不用插入,从第二个数开始,进行比较、插入
int temp=a[i];//保存每趟中待插入(待排序)的关键字大小
int j=i;//
for(;j>0&&temp<a[j-1];--j) {//重点。temp,不能写成a[i]
a[j] = a[j-1];//涉及多次移位
}
a[j]=temp;
}
}
public static void main(String[] args){
int[] arr={6,2,3,4,5,1};
sort(arr);
for(int i:arr)
System.out.print(i+" ");
}
}
冒泡排序
com.sxy.bubbleSort
//冒泡排序
public class SortTest {
public static void sort(int[] a) {
if(a==null&&a.length==0){
return;
}
int len = a.length;
int temp;
for (int i = 0; i < len - 1; i++) {//n-1趟排序
for (int j = 0; j < len - i - 1; j++) {
if (a[j] > a[j + 1]) {//两两比较,相邻的两个比较
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] arr = {6, 5, 2, 3, 4, 1};
System.out.println("after sort:");
sort(arr);
//int i;//
for (int i : arr) {
System.out.print(i + " ");
}
}
}
简单选择排序
com.sxy.selectionSort
//选择排序
import java.util.Arrays;
public class SortTest{
public static void sort(int[] a){
if(a==null&&a.length==0){
return;
}
int n=a.length;
int temp;
for(int i=0;i<n-1;i++){//n-1趟排序
int min=i;//min记录关键字最小的下标
for(int j=i+1;j<n;j++){
if(a[j]<a[min]){//和每趟关键字最小的那个比
min=j;
}
}
if(min!=i){
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
}
public static void main(String[] ars){
int[] arr={6,5,2,3,4,1};
System.out.println("after sort:");
sort(arr);
/*for(int i:arr){
System.out.print(i+" ");
}*/
System.out.print(Arrays.toString(arr));
}
}
secction 2 输出素数
Java算法题1:判断101-200之间有多少个素数,并输出所有素数。
https://www.cnblogs.com/gr-18219616915/p/5492484.html
public class SuShuTest {
public static void main(String[] args)
{
//for循环遍历101-200
int num=0;
for(int i = 101; i <= 200; i++)
{
boolean b = false;
//内层循环判断i是否为素数
for(int j = 2; j <= i-1; j++)
{
//除了1和它本身以外,如果i可以整除其他数就b = false
if( i % j == 0 )
{
b = false;break;
}
//如果不能整除就b = true
else {
b = true;
}
}
//如果b = true就打印出来
if(b == true) {
System.out.println(i);
//num++;
}
}
//System.out.println("101~200的素数个数为:"+num);
}
}
com.sxy.test1;
public class SuShuTest {
public static void main(String[] args)
{
boolean flag=false;//标志,初始值的设定也很关键
int num=0;
for(int i = 101; i <= 200; i++) {//for循环遍历101~200
for(int j = 2; j <= i-1; j++) {
if( i % j == 0 ) {
flag=false;break;//
}
else{
flag=true;//
}
}
if(flag==true){//
System.out.println(i);
num++;
}
}
System.out.println("101~200的素数个数为:"+num);
}
}
com.sxy.test2;
public class SuShuTest {
public static void main(String[] args)
{
//for循环遍历101-200
boolean flag=true;//标志,初始值的设定也很关键
int num=0;
for(int i = 101; i <= 200; i++) {
for(int j = 2; j <= i-1; j++) {//j <= i-1;范围取大了,应为j<=i/2
if( i % j == 0 ) {
flag=true;break;//
}
else{
flag=false;//
}
}
if(flag==false){//
System.out.println(i);
num++;
}
}
System.out.println("101~200的素数个数为:"+num);
}
}
Java算法题2:判断1-100之间有多少个素数,并输出所有素数。
com.sxy.test3;
public class SuShuTest {
public static void main(String[] args)
{
int i,n,j,b;//n用来存储素数的个数,b是一个标志,b=0表示被某个数整除,b=1表示不能被某个数整除。
//i被除数、j除数
for ( i=2,n=0;i<=100;i++ ) {//求1~100以内的素数
for ( j=2,b=1;j<=i/2;j++ )//b=1初始值,假定i不会被某个数整除。b=1表示不能被某个数整除
//j<=i/2是关键
if ( i%j==0 ) {
b=0; break;//一旦可以被某个数整除,那么就将b置为0。
}
if (b==1) {
n++;
System.out.println(i);
}
}
System.out.println("1~200的素数个数为:"+n);
}
}
com.sxy.test4;
public class SuShuTest{
public static void main(String[] args){
boolean flag=false;/////////////////////
int num=0;
for(int i=2;i<=100;i++){//求1~100以内的素数
for(int j=2;j<=i/2;j++){
if(i%j==0){///////////////////////////
flag=true;
break;
}
else{
flag=false;
}
}
if(flag==false){
num++;
System.out.println(i);
}
}
System.out.println("素数的个数:"+num);
}
}
com.sxy.test5;
public class SuShuTest{
public static void main(String[] args){
boolean flag=true;//
int num=0;
for(int i=2;i<=100;i++){//求1~100以内的素数
for(int j=2;j<=i/2;j++){
if(i%j!=0){////////////////////////////////
flag=true;
}
else{
flag=false; break;
}
}
if(flag==true){
num++;
System.out.println(i);
}
}
System.out.println("素数的个数:"+num);
}
}
Java算法题1:判断101-200之间有多少个素数,并输出所有素数。 (补充)
com.sxy.test6;
public class SuShuTest {
public static void main(String[] args)
{
boolean flag=true;//标志,初始值的设定也很关键;
//因为2是质数,所以这里的flag和下文中的if(flag==true)一致
//如果这里的初始值是false,那么运行结果输出的素数没有2
int num=0;
for(int i = 2; i <= 100; i++) {//for循环遍历101~200
for(int j = 2; j <= i-1; j++) {
if( i % j == 0 ) {
flag=false;break;//
}
else{
flag=true;//
}
}
if(flag==true){//
System.out.println(i);
num++;
}
}
System.out.println("101~200的素数个数为:"+num);
}
}