人就是这样,只能坚持那么几天,然后就是一阵萎靡。几天无所收获。只能靠清理过去的笔记来收获点什么吧!
不多说,给自己一句话,今日事不毕,明日事会更多。
1.java中数组定义有哪两种形式?
第一种是不知道数组的内容。
如:int[] arr = new int[4];
第二种是知道数组的内容。如:int[] arr = {1, 2, 3, 4};或int[] arr = new int[] {1, 2, 3, 4};
2.java 中数组常见的操作有哪些?
遍历一个数组的内容、对数组内容进行排序、查找一个数组中内容对应位置。
3.对数组的操作核心思想就是对数组角标的操作。
4.java中常见的排序算法?(面试常考)
选择排序和冒泡排序。
选择排序就是遍历数组,将第一最小的数或者最大数,保存在角标为0数据上。
依次如此来排序数组。
冒泡排序就是相邻的数据相互比较,把最大的数或者最小的数排在最后面。依次来排序数组。
5.选择排序和冒泡排序的代码实现。
选择排序:
for(int i = 0; i<arr.length - 1; i++)
for(int j = i +1; j<arr.length; j++)
{
if(arr[i] > arr[j])
{
swap(arr, i, j);
}
}
冒泡排序:
for(int i = 0 ; i<arr.length - 1; i++)
for(int j = 0; j<arr.length - i - 1; j ++)
{
if(arr[j] > arr[j+1])
swap(arr, j , j+1);
}
6.java中如果进行二分查找,则需要数组是预先排好的。
Array.binarySearch(arr, 5); 如果存在则返回数在数组中的位置,否则返回负的插入点减1
对无序的数据进行查找则需要使用遍历的方法来操作数组了,因为数组的排序是杂乱的,
没有规律。
7.二分查找数据代码实现?
定义三个变量 min = arr[0], max = arr[length - 1], mid;
while(min < =max)
{
mid = (min + max) / 2;
if(key > arr[mid])
min = mid + 1;
else(key < arr[mid])
Max = mid - 1;
else
return mid;
}
return -1;
8.对数组进行反转,其实就是头尾元素的位置置换。
9.什么时候使用数组呢,什么是查表法?
当数据出现对应关系,而且对应关系的一方是有序的数字编号,并且作为角标使用,
这时就需要使用数组了。
可以将数据存储到数组中,根据运算的结果作为角标直接去数组中去找数据。
这就是查表法。
10.如何取一个数的最低四位?
通过位运算中的与运算&, 因为1 & 0 = 0, 1 & 1 = 1; 与运算具有记忆功能。
取最低四位时可以 & 15, 去中间四位时,这时可以将原数据向右移动四位,进行移位也可以将15 进行移位,向左移动四位。