第一题:
import java.lang.Integer;
import java.util.Arrays;
class ArrDemo{
public static void main(String[] args){
int[] arr = new int[]{1,20,60,90,4};
//int[] arr = new int[5];//问题2、这个值并没有在错误判断里面,怎么判断?
System.out.println(Arrays.toString(arr));
int maxv = getMax(arr);
System.out.println(maxv);
}
public static int getMax(int[] arr){
int length = arr.length;
if(arr == null){//问题1、数组要怎么定义arr才等于null?
System.out.println("数组定义错误!null值!");
System.exit(0);
}else if(length == 0){
System.out.println("数组定义错误!长度等于0!");
System.exit(0);
}
int minv = Integer.MIN_VALUE;
for(int i=0;i<length;i++){
if(arr[i] > minv){
minv = arr[i];
}
}
return minv;
}
}
第二题:
public static void main(String[] args){
int[] arr = new int[]{1,20,60,90,4,10,20};
System.out.println(Arrays.toString(arr));
int position = getPos(arr,4);
System.out.println(position);
}
public static int getPos(int[] arr,int v){
int num = 0;
int position = 0;
int length = arr.length;
if(arr == null){
System.out.println("数组定义错误!null值!");
System.exit(0);
}else if(length == 0){
System.out.println("数组定义错误!长度等于0!");
System.exit(0);
}
for(int i=0;i<length;i++){
if(v == arr[i]){
num ++;
position = i;
break;
}
}
return position;
}
第三题:
public static void main(String[] args){
int[] arr = new int[]{10,20,60,90,4,11,20,2};
int[] bulle_arr = bulleSort(arr);
System.out.println(Arrays.toString(bulle_arr));
}
//冒泡排序,升序
public static int[] bulleSort(int[] arr){
int length = arr.length;
int tmp = 0;
for(int i=0;i<length-1;i++){
for(int j=0;j<length-1-i;j++){
if(arr[j]>arr[j+1]){
tmp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tmp;
}
}
}
return arr;
}
第四题:
public static void main(String[] args){
int[] arr = new int[]{1,2,3,.....,1021,1022,1023}; //log2^1024 = 10;
int binv = binSearch(arr,1023);
System.out.println(binv);
}
public static int binSearch(int[] arr,int v){
int length = arr.length;
int left = 0;
int right = length - 1;
int i = 0;
int r = 0;
int num = 0;
while(left <= right){
num ++;
i = (left + right)/2;
if(arr[i] == v){
r = i;
break;
}else if(arr[i] > v){
right = i - 1;
}else{//arr[i]<v
left = i + 1;
}
if(num >= 1000){
break;
}
}
System.out.println(num);
return r;
}
第五题:首先是有序,一分为二的去查找,一次去掉一半数据,匹配次数成对数增长。
第六题:
public static void main(String[] args){
int[][] arr = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
for(int i=0;i<arr.length;i++){
System.out.println(Arrays.toString(arr[i]));
}
int[][] rows_arr = changeArr(arr);
for(int i=0;i<rows_arr.length;i++){
System.out.println(Arrays.toString(rows_arr[i]));
}
}
public static int[][] changeArr(int[][] arr){
int tmp = 0;
int num = 0;
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr[i].length;j++){
tmp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = tmp;
num ++;
}
}
System.out.println(num);
return arr;
}
第七题:
class TreeDemo{
public static void main(String[] args){
int[][][] arr = {{{1,2,3},{4,5,6},{7,8,9}},{{10,11,12},{13,14,15},{16,17,18}},{{19,20,21},{22,23,24},{25,26,27}}};
treeStruct(arr);
}
public static void treeStruct(int[][][] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
for(int m=0;m<arr[j].length;m++){
System.out.print(arr[j][i][m] + "\t");
}
System.out.print("| ");
}
System.out.println("");
}
}
}
第八题:
class DogDemo{
public static void main(String[] args){
AttrDemo attr = new AttrDemo();
attr.cry("red",100);
System.out.println(attr.getColor());
System.out.println(attr.getAge());
}
}
class Dog{
private static String color = "white";
private static int age = 10;
public void cry(String color,int age){
this.color = color;
this.age = age;
}
public String getColor(){
return this.color;
}
public int getAge(){
return this.age;
}
}
第九题:
堆区:一个内存区域,存放数组、对象、对象成员属性等数据,定义一个超大的数据就会出现溢出。
栈区:使用计算机寄存器空间,局部变量、方法都存放在栈区内,存放方式是先进后出,先调用的方法
压入栈底,调用完之后栈顶的方法先弹出。栈溢出无限递归调用一个方法。
第十题:
oop:面向对象编程。封装、继承、多态。
转载于:https://blog.51cto.com/senlinmin/1769882