面试常考<br /><br /> <br /> *********************************************************************<br /> /*<br /> * 使用二维数组打印10行杨辉三角<br /> * 提示:<br /> * 1.第一行有1个元素,第n行n个元素<br /> * 2.每一行的第一个元素和最后一个元素都是1<br /> * 3.从第行开始,对于对于非第一个元素和最后一个元素的元素。即:<br /> * yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];<br /> * 1.声明并初始化二维数组<br /> * 2.给数组的元素赋值<br /> * 3.遍历二维数组<br /> */
package Arry;public class YangHui {public static void main(String[] args) {//1.声明并初始化二维数组int[][] yanghui = new int[10][];//2.给数组的元素赋值for (int i = 0; i < yanghui.length; i++) {yanghui[i] = new int[i + 1];//2.1给首末元素赋值yanghui[i][0] = yanghui[i][i] = 1;//2.2给每行的非首末元素赋值//if(i>1){for(int j = 1;j<yanghui[i].length-1;j++){yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];}//}}for (int i = 0; i < yanghui.length; i++) {for (int j = 0; j < yanghui[i].length; j++) {System.out.print(yanghui[i][j] + " ");}System.out.println();}}}
*


*
/
  算法的考查:求数值型的数组中元素的最大值、最小值、平均数、总和等
   
  定义一个int型的一维数组,包含10个元素,分别赋一些随机数。
  然后求出所元素的最大值,最小值,和值。
       要求:所随机数都是两位数
  随机数:[10,99] 公式 (int)(Math.random()  (99 - 10 + 1)+ 1)
   
 /
package Arry;
public class test1 {
    public static void main(String[] args){
  int arr [] = new int [10];
  //给数组赋随机数
  for(int i = 0;i
  }
  //遍历数组
  for(int i = 0;i
  }
      System.out.println();
  //求数组元素的最大值
  int max = 0;
  for(int i = 0;i
      }
  }
  System.out.println(“最大值为”+max);
  //求数组元素的最小值
  int mix = arr[0];
  for(int i = 0;i
    max = arr[i];
      }
  }
  System.out.println(“最小值为”+max);
  //求数组元素的总和
  int sum = 0;
  for(int i = 0;i
  }
  System.out.println(“总和为”+sum);
  //求数组元素的平均数
  int num = sum/arr.length;
  System.out.println(“平均数为”+num);
    }
}
   **
   /使用简单数组
  1.创建一个名为ArrayTest的类,在main()方法中声明array1和array2两个变量,
    他们是int类型的数组
  2.使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19
  3.显示array1的内容
  4.赋值array2变量等于array1,修改array2中的偶索引元素,使其等于索引值
    (如array[0]=0.array[2]=2)。 打印出array1
 /
package Arry;public class ArrayTest {public static void main(String[] args){int array1[] = new int[]{2,3,5,7,11,13,17,19};int array2[];for(int i = 0;i<array1.length;i++){System.out.print(array1[i]+ "\t");}System.out.println();array2= array1;for(int i = 0;i<array2.length;i++){if(i % 2 == 0){array2[i]=i;}System.out.print(array2[i]+"\t");}System.out.println();//打印array1for(int i = 0;i<array1.length;i++){System.out.print(array1[i]+ "\t");}}}
  *
 *
    
/
  算法的考查: 数组的复制、反转、查找(线性查找、二分查找
   
   
 /
package Arry;
public class ArrayTest2 {
    public static void main(String[] args) {
  String[] arr = new String[] { “JJ”, “MM”, “DD”, “BB”, “GG”, “SS”, “OO” };
  // 数组的复制(区别于数组变量的赋值:arr1 = arr)
    //数组的复制是创建了一个新的数组,并一一赋值。
  String[] arr1 = new String[arr.length];
  for (int i = 0; i < arr.length; i++) {
      arr1[i] = arr[i];
  }
  **
  // 数组的反转
  // 方式一:
  // for(int i = 0;i
  // arr[i] = arr[arr.length - i-1];
  // arr[arr.length -i-1] = temp;
  // }
  // //遍历
  // for(int i = 0;i
  //
  // }
   *
  // 查找(搜索)
  // 线性查找
  String dest = “BB”;
  boolean isFlag = true;
  for (int i = 0; i < arr.length; i++) {
      if (dest.equals(arr[i])) {
    System.out.println(“找到了指定的元素,位置为:” + i);
    isFlag = false;
    break;
      }
  }
   if(isFlag==true){
   System.out.println(“抱歉没找到”);
   }
 
  // 二分查找:更快
  //前提:所要查找的数组必须序
  int[]arr2 = new int[]{-98,-34,2,34,54,66,76,88,97,213,342,546,768,990};
  int dest1 = -34;
  int head = 0;//初始的首索引
  int end = arr2.length - 1;//初始的末索引
  boolean isFlag1 = true;
  while(head<=end){
      int middle = (head + end)/2;
      if(dest1 == arr2[middle]){
    System.out.println(“找到了指定的元素,位置为:” + middle);
    isFlag1 = false;
    break;
      }else if(arr2[middle] > dest1){
    end = middle -1;
      }else{
    head = middle + 1;
      }  
  }
    }
}
 *
 *
 *
/
  数组的冒泡排序
 */
package Arry;public class BubbleSortTest {public static void main(String[] args) {int[] arr = new int[]{43,21,44,-45,77,87,567,-132,88,44,21,90};for(int i = 0;i<arr.length - 1;i++){for(int j = 0;j<arr.length - 1 - i;j++){if(arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}for(int i = 0;i<arr.length;i++){System.out.print(arr[i]+"\t");}}}
 *

