java循环 排序 查找

 2023-09-15 阅读 25 评论 0

摘要:一、循环、排序、查找基础练习 1.求1~100奇数和偶数的和 代码:public class OddOrEvenSum {public static void main(String[] args) {int oddSum = 0; //奇数之和int evenSum = 0; //偶数之和for (int i = 1 ; i <= 100 ; i ++) {if (i % 2 =

一、循环、排序、查找基础练习

1.求1~100奇数和偶数的和

  • 代码:
public class OddOrEvenSum {public static void main(String[] args) {int oddSum = 0;		//奇数之和int evenSum = 0;	//偶数之和for (int i = 1 ; i <= 100 ; i ++) {if (i % 2 == 1) {//判断奇数oddSum += i ;}else{		//不是奇数就是偶数evenSum += i;}}System.out.println("1~100之内奇数的和是: " + oddSum);System.out.println("1~100之内偶数的和是: " + evenSum);}
}
复制代码
  • 运行结果:

2.求水仙花数

  • 代码:
public class NarcNumber {public static void main(String[] args) {for (int i = 100 ; i <= 999 ; i ++ ) {int unit = i % 10;			//个位数int decade= i / 10 % 10;	//十位数int hundreds = i / 100;		//百位数int sum = unit * unit * unit + decade * decade * decade + hundreds * hundreds * hundreds;if (sum == i) {				//判断各个位数的立方和是否等于数的本身System.out.println(i);	//打印水仙花数}}}
}
复制代码
  • 运行结果:

3.打印26的大小写字母

  • 代码:
public class PrintA_Z_a_z {public static void main(String[] args) {for (char a = 'a'; a <= 'z'; a ++) {System.out.print(a + " ");}System.out.println();for (char b = 'A'; b <= 'Z';b ++) {System.out.print(b + " ");}System.out.println();}
}
复制代码
  • 运行结果:

4.打印9*9乘法表

  • 代码:
public class MulList {public static void main(String[] args) {for (int i = 1;i <= 9; i ++) {for (int j = 1;j <= i; j ++) {System.out.print(j + " * " + i + " = " + j * i + "  ");if (i * j < 10) {	//多一个空格保证打印整齐System.out.print(" ");}}System.out.println();}}
}
复制代码
  • 运行结果:

5.任意写一个数组,赋值,然后打印数组逆序后结果

  • 代码:
public class ReversalArray {public static void main(String[] args) {int[] arr = {1,23,12,11,66,34};arrReversal(arr);arrPrint(arr);}public static void arrReversal(int[] arr) {for (int max = arr.length - 1 , min = 0;min <= max; min ++,max --) {int temp = arr[min];arr[min] = arr[max];arr[max] = temp;}}public static void arrPrint(int[] arr) {if (arr == null) {System.out.println("数组为空");return;}System.out.print("[");for (int i = 0 ; i < arr.length - 1; i ++) {System.out.print(arr[i] + ",");}System.out.println(arr[arr.length - 1] + "]");}
}
复制代码
  • 运行结果:

6.练习排序算法

a.选择排序

  • 代码:
public class SelectSort {public static void main(String[] args) {int[] arr = {9,12,3,4,13,6};	//静态初始化数组selectSort(arr);	//调用选择排序方法arrPrint(arr);		//调用打印数组方法}public static void selectSort(int[] arr) {for (int i = 0;i < arr.length - 1; i ++) {for (int j = i + 1 ; j < arr.length ; j ++) {if (arr[j] < arr[i]) {	//如果前一个数比后一个数小则交换这两个数int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}public static void arrPrint(int[] arr) {System.out.print("[");for (int i = 0 ; i < arr.length-1 ; i ++) {System.out.print(arr[i] + ",");}System.out.println(arr[arr.length - 1] + "]");	}
}
复制代码
  • 运行结果:

b.冒泡排序

  • 代码:
public class BubbleSort {public static void main(String[] args) {int[] arr = {9,12,3,4,13,6};bubbleSort(arr);arrPrint(arr);}public static void bubbleSort(int[] arr) {for (int i = 0 ; i < arr.length - 1 ; i ++) {for (int j = 0 ; j < arr.length - 1 - i; j ++) {if (arr[j + 1] < arr[j]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}public static void arrPrint(int[] arr) {if (arr == null) {System.out.println("数组为空");return;}System.out.print("[");for (int i = 0 ; i < arr.length - 1; i ++) {System.out.print(arr[i] + ",");}System.out.println(arr[arr.length - 1] + "]");}
}
复制代码
  • 运行结果:

7.折半查找

  • 代码:
public class BinarySearch {public static void main(String[] args) {int[] arr = {1,2,4,10,11};	//静态定义数组System.out.println(binarySearch(arr,4));}public static int binarySearch(int[] arr,int key) {int min = 0;	//定义数组最小索引int max = arr.length - 1;	//定义数组最大索引int mid = 0;	//如果写成int mid = (min + max) / 2,mid变成一个常量while (min <= max) {mid = (min + max) / 2;if (key > arr[mid]) {	//如果查找的值比中间的数大min = mid + 1;		//将中间索引+1赋值给最小索引}else if (key < arr[mid]) {		//如果查找的值比中间的数小max = mid - 1;				//将中间索引-1赋值给最大索引}else{							//否则查找到了return mid;					//返回中间索引号}}return -1;		//循环后没有查询到指定的数,返回-1}
}
复制代码
  • 运行结果:

二、拓展练习

1.按照25个一行从大到小的顺序打印所有四位整数中个位+十位=百位+千位的整数

(线索:循环(9999到1000)、计数器控制换行(计数器%5==0))

  • 代码:
public class KiloEqual {public static void main(String[] args) {int count = 0;		//定义一个计数器for (int i = 9999; i >= 1000; i --) {	//反向遍历1000~9999int unit = i % 10;				//个位数int decade = i / 10 % 10;		//十位数int hundreds = i / 100 % 10;	//百位数int kilo = i / 1000;			//千位数if (unit + decade == hundreds + kilo) {		//如果个位+十位=百位+千位System.out.print(i + " ");				//打印出符合要求的数count ++;								//计数器+1if (count % 25 == 0) {					//每5行换行打印System.out.println();}}}}
}
复制代码
  • 运行结果:

2.倒着打印九九乘法表

  • 代码:
public class ReverseMulList {public static void main(String[] args) {for (int i = 1;i <= 9; i ++) {for (int j = 9;j >= i ; j --) {System.out.print(j + " * " + i + " = " + i * j + "  ");if (i * j < 10) {	//多一个空格保证打印整齐System.out.print(" ");}}System.out.println();}}
}
复制代码
  • 运行结果:

3.分析以下需求,并用代码实现:(扩展)

(1)键盘录入6个int类型的数据存数数组arr中 (2)将arr数组中的内容反转 (3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推 例如: int[] arr={16,4,5,7,9,11} 反转:arr={11,9,7,5,4,16} 奇数的互相交换: arr={11,5,7,16,4,9}

  • 代码:
import java.util.Scanner;
public class FancyArrayReverse {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] arr = new int[6];		//动态定义一个整型数组,有6个元素System.out.println("请输入6个数整数:");for (int i = 0 ; i < 6 ; i++) {		//键盘录入6个整数System.out.println("第 " + (i + 1) + "个整数");arr[i] = sc.nextInt();}System.out.println("数组内容");arrPrint(arr);				//打印数组System.out.println("反转数组");arrReverse(arr);			//反转数组arrPrint(arr);				//数组反转后打印System.out.println("花式反转数组");fancyArrayReverse(arr);		//奇数索引的数进行反转arrPrint(arr);				//花式反转后打印数组}public static void arrReverse(int[] arr) {		//反转数组方法for (int min = 0,max = arr.length -1 ; min <= max ; min ++,max --) {int temp = arr[min];arr[min] = arr[max];arr[max] = temp;}}public static void fancyArrayReverse(int[] arr) {		//花式反转数组方法for (int i = 1; i < arr.length - 2 ; i += 2 ) {int temp = arr[i];arr[i] = arr[i + 2];arr[i + 2] = temp;}}public static void arrPrint(int[] arr) {		//打印数组方法if (arr == null) {System.out.println("数组为空");return;}System.out.print("[");for (int i = 0 ; i < arr.length - 1; i ++) {System.out.print(arr[i] + ",");}System.out.println(arr[arr.length - 1] + "]");}
}
复制代码
  • 运行结果:

转载于:https://juejin.im/post/5a34e6bcf265da431523fb3c

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/63847.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息