Java 基础知识( 数组以及排序算法)梳理

文章摘要
1、数组的声明和使用。
2、99乘法表


一、数组

  • 1、数组:数组也是变量,是用来存储相同数据类型的一组变量。
    声明数组:数据类型 数组名[] 、 数据类型[] 数组名,声明数组可以容纳的类型。
int index[];
String[] names;
  • 2、数组的初始化。分配内存空间大小
index = new int[30];
names = new String[20];
  • 3、赋值。初始化数组
index[0] = 1;
names[0] = "HelloWorld";
int[] ages = {45,44,33};//边声明、边初始化
int[] score = new int[]{99,59,80};//声明+初始化
  • 4、使用
int sum = score[0]+score[1]+score[2];//数组第一个元素从0开始
System.out.println("总分数:"+sum);

关于数组,我们可以总结如下:
数组的长度是固定的,也是有边界的。

数组第一个元素从0开始,“length - 1”结束。数组越界是常见的编程错误。

  • 5、应用实战:使用数组,求最大数,最小数,平均数
int maxScore=score[0];
int minScore = score[0];
int avg = 0;
for(int i=0;imaxScore){
 maxScore = score[i];
 }
 if(score[0]

二、多维数组
多维数组:数组的数组,即:数组的元素也是数组。

int[][] arrays = new int[][]{
   {1,2,3,4,5},
   {10,9,8,7,6}
};
int[][][] scores = {
   {//小学各年级的成绩单
       {//小学一年级一班
         99,87,76,60
       },
       {//小学一年级二班
       100,87,78,60
       },
       {//小学一年级三班
         98,87,67,49
       }
   },
   {//初中各年级的成绩单
       {
 
       }
   },
   {//高中各年级的成绩单
       {
 
       }
   }
};

三、99乘法表

  • 3.1、打印99乘法表
for(int i=1;i<=9;i++){
 for(int j=1;j<=i;j++){
 System.out.print(i+"X"+j+"="+(i*j));
 System.out.print(" ");
 }
 System.out.println();
}

输出:

1X1=1 
2X1=2 2X2=4 
3X1=3 3X2=6 3X3=9 
4X1=4 4X2=8 4X3=12 4X4=16 
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25 
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36 
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49 
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64 
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81 
  • 3.2、Continue的使用:
//将9X9乘法表中的偶数行不显示,即:第2行、第4行
for(int i=1;i<=9;i++){
 if(i%2==0)continue;//如果行控制变量i可以被2整除,则不显示,继续下次循环
 for(int j=1;j<=i;j++){
 System.out.print(i+"X"+j+"="+(i*j));
 System.out.print(" ");
 }
 System.out.println();
}
  • 3.3、“35太难了”
    break的使用:将大约35的乘法口诀不输出
//99乘法表中,结果大于35的乘法口诀不要输出
for(int i=1;i<=9;i++){
 for(int j=1;j<=i;j++){
 if(i*j>35){
 break;
 }
 System.out.print(i+"X"+j+"="+(i*j));
 System.out.print(" ");
 }
 System.out.println();
}

输出:

1X1=1 
2X1=2 2X2=4 
3X1=3 3X2=6 3X3=9 
4X1=4 4X2=8 4X3=12 4X4=16 
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25 
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 
8X1=8 8X2=16 8X3=24 8X4=32 
9X1=9 9X2=18 9X3=27 

四、冒泡排序
冒泡排序:从最底部的元素开始比较,两个元素中的较小的冒到顶部,较大的沉到底部,重复执行,直到所有的元素都被排序。

int numbers[] = {98,102,45,29,85};
int temp = 0;
//冒泡排序1--沉底
for(int i=0;inumbers[j+1]){//升序、降序来自">"还是"<"
 temp = numbers[j];
 numbers[j]=numbers[j+1];
 numbers[j+1]=temp;
 }
 }
}

//冒泡排序2-上浮
for(int i=0;ii;j--){//每次排序决定[i]位置的数字
 if(numbers[j]>numbers[j-1]){//升序、降序来自"<"还是">"
 temp = numbers[j];
 numbers[j]=numbers[j-1];
 numbers[j-1]=temp;
 }
 }
}

备注:

  • 1、加入了二分法的双向冒泡排序:
    http://blog.csdn.net/droyon/article/details/8785903

  • 2、选择排序:
    http://blog.csdn.net/droyon/article/details/8790229

  • 3、交换排序:
    http://blog.csdn.net/droyon/article/details/8785910

案例代码下载:代码下载:http://download.csdn.net/detail/hailushijie/9661631

你可能感兴趣的:(Java 基础知识( 数组以及排序算法)梳理)