------- android培训、java培训、期待与您交流! ----------
数组的排序
public class ArrayDemo {public static void main(String[] args) {
}
/*
* 数组的排序,冒泡排序法
* 采用相邻的两个区比较
* 注意数组的越界异常,相邻的两个元素,换位置
* y+1导致数组的下标不存在
* 在内圈的循环上必须-1防止数组越界
* arr.legnth-1-x
* -1防止越界 -x 提高效率
*/
private static void bubbleSort(int[] arr){
for(int x = 0 ; x < arr.length - 1 ;x++){
for(int y = 0 ; y < arr.length - 1 ; y++){
if(arr[y] > arr[y+1]){
swap(arr,y,y+1);
}
}
}
}
/*
* 对于数组的换位置
* 两种排序方法,几乎没有什么去
* 将排序这部分程序,提出成一个方法,只要需要位置的变化,调用方法就可以了
*/
private static void swap(int[] arr,int x,int y){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
/*
* 对数组进行排序,选择排序法
* 数组中的每一个元素,和其他元素比较,然后进行位置的置换
*/
private static void selectSort(int[] arr){
//外层循环,0 1 2 3
for(int x = 0 ; x < arr.length - 1; x++){
//内层循环 1 2 3
for(int y = x+1 ; y < arr.length ; y++){
if(arr[x] > arr[y]){
swap(arr,x,y);
}
}
}
}
/*
* 数组的折半查找法。
*/
private static int binarySearch(int[] arr,int key){
//定义三个变量,存储数组的下标
int min = 0, max = arr.length - 1,mid = 0 ;
while(min<=max){
//进行折半
mid = (min+max)/2;
if(arr[mid] > key){//数组中间下标,大于关键字,移动大指针
max = mid - 1;
}else if(arr[mid] < key){
min = mid + 1;
}else{
return mid;//返回中间指针
}
}
return -1;
}
}
用冒泡排序的效率比比较法排序的效率高,因为冒泡比较的次数少。
Java中的日期对象
获取当前操作系统毫秒值的方法
System.currentTimeMillis()
Date类的getTime()方法
以上两个方法,结果都是long的毫秒值
将毫秒值转成日期对象
Date类的构造方法,传递毫秒值
Date类的setTime()方法,传递毫秒值
毫秒值转成对应的日期对象
------- android培训、 java培训、期待与您交流! ----------