多重循环是循环的嵌套,即一个循环体内包含另一个完整的循环结构
外层循环控行数,内层循环控个数
冒泡排序:
如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式。
1.原理:比较两个相邻的元素,将值大的元素交换到右边
2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。
(1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。
(2)比较第2和第3个数,将小数 放在前面,大数放在后面。
(3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,如此下去,重复以上过程,直至最终完成排序。
代码实现:
public class BubbleSort {
public static void BubbleSort(int[] arr) {
int temp;//定义一个临时变量
for(int i=0;i<arr.length-1;i++){//冒泡趟数
for(int j=0;j<arr.length-i-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
数组
同一种类型数据的集合。其实数组就是一个容器。
格式一
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式二
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
程序分享:
从控制台输入直角三角形的高度 每行*的数目依次为1,3,5,7...
Scanner input = new Scanner(System.in);
System.out.println("请输入直角三角形的行数:");
int row = input.nextInt();
int i;
for ( i = 1; i<=row;i++) {
for (int j = 0; j < 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
打印直角三角形
Scanner input = new Scanner(System.in);
System.out.println("请输入直角三角形的行数:");
int row = input.nextInt();
int i;
for ( i = 1; i<=row;i++) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
输入直角三角形行数,呈现倒直角三角形输出
Scanner input = new Scanner(System.in);
System.out.println("请输入直角三角形的行数:");
int row = input.nextInt();
for (int i= row;i>0;i--){
for (int j=i;j>0;j--){
System.out.print("*");
}
System.out.println();
}
}
打印乘法口诀
for (int i = 1;i<=9;i++){
for (int j = 1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
输入打印行数,打印菱形,输入行数为奇数继续输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要打印菱形的行数(奇数):");
double a = sc.nextInt();
double b = (a / 2) + 0.5;
double c = (a / 2) - 0.5;
if (a % 2 == 0) {
System.out.println("请重新输入");
} else {
for (int i = 1; i <= b; i++) {
for (int j = 1; j <= b - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
for (double i = c; i >= 1; i--) {
for (int j = 1; j <= b - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
排列输出数组内容;升序输出;降序输出
char tem;
char arr[] = new char[]{'a','c','u','b','e','p','f','z'};
System.out.print("原字符序列:");
for (int i =0;i<8;i++ ){
System.out.print(arr[i]+"\t");
}
System.out.println("");
System.out.print("升序排序为:");
for (int j=0;j<=arr.length-1;j++){
for (int k = 0;k< arr.length-1-j;k++){
if (arr[k]>arr[k+1]){
tem = arr[k];
arr[k] = arr[k+1];
arr[k+1] = tem;
}
}
}
for (int i =0;i<8;i++ ){
System.out.print(arr[i]+"\t");
}
System.out.println(" ");
System.out.print("逆序排序为:");
char tem1 ;
for (int l = 0;l<=arr.length-1;l++){
for(int m = 0;m< arr.length-1-l;m++){
if(arr[m]<arr[m+1]){
tem1 = arr[m+1];
arr[m+1] = arr[m];
arr[m] = tem1;
}
}
}
for (int i =0;i<8;i++ ){
System.out.print(arr[i]+"\t");
}
}