黑马程序员___数组排序

------- 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培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值