二分法查找对象的引用
来源:互联网 发布:在淘宝里做代销怎么做 编辑:程序博客网 时间:2024/06/06 14:07
class Date{int day,month,year;Date(int year, int month, int day){this.day = day;this.month = month;this.year = year;}public int compare(Date aim){if (aim.year > year){return 1;}else {if (aim.year < year){return -1;}else {if (aim.month > month){return 1;}else {if (aim.month < month){return -1;}else{if (aim.day > day){return 1;}else {if (aim.day < day){return -1;}}}}}}return 0;}public String toString(){return "Day:Month:Year -- " + day + "-" + month + "-" + year;}}public class DateSort {public static Date[] bubbleSort(Date[] d){Date temp;for (int i = 0; i < d.length -1; i++){for (int j = 0; j < d.length -1; j++){if(d[j].compare(d[j+1]) < 0){temp = d[j];d[j] = d[j+1];d[j+1] = temp;}}}return d;} //开始定义二分法public static int search(Date[] day,Date da){if(day.length == 0){System.out.print("数组为空");return -1;}int startPos = 0;//起点,也叫低位int endPos = day.length - 1;//终点,也称高位while(startPos <= endPos){int midPos = (startPos + endPos)/2; //int型强行取整数,若不能被整除则小数部分强行被舍弃if (day[midPos].compare(da) == 0){ return midPos;}else if(day[midPos].compare(da) > 0){startPos = midPos + 1;}else if(day[midPos].compare(da) < 0){endPos = midPos - 1;}}System.out.println("查找的日期不存在");return -1;}public static void main(String[] args) {// TODO Auto-generated method stubDate[] day = new Date[5];day[0] = new Date(2015,5,21);day[1] = new Date(2014,4,21);day[2] = new Date(2015,4,20);day[3] = new Date(2014,5,20);day[4] = new Date(2014,4,20);System.out.println("------Original------");for (int i = 0; i < day.length; i++){System.out.println(day[i]);}bubbleSort(day);System.out.println("------Sort------");for (int i = 0; i < day.length; i++){System.out.println(day[i]);}System.out.println("------Search------");Date aim = new Date(2015,4,20);System.out.println(search(day,aim));//这里返回的是数组中的位置,要从0开始数}}
0 0
- 二分法查找对象的引用
- 二分法查找的实现
- 二分法查找的原理
- 二分法查找的算法
- 二分法查找的边界问题
- java的二分法查找
- 用二分法对引用类型进行查找
- 二分法查找的JAVA程序
- 二维数组的二分法查找
- delphi 里的二分法查找
- 旋转数组的二分法查找
- C语言的二分法查找
- php 简单的二分法查找
- 二分法查找的Python实现
- 二分法查找的C++实现
- C++数组的二分法查找
- 二分法查找的简单实现
- Swift的二分法查找实践
- 欢迎使用CSDN-markdown编辑器
- iOS中OpenURL的使用
- android微信里自带浏览器 removeAttribute('style') 失效
- 80C51串口proteus 仿真终端接收乱码
- SpringMVC实现RESTful风格
- 二分法查找对象的引用
- Crosstool-ng 制作交叉编译器
- instanceof运算符
- hibernate实体配置关系映射&延迟加载
- 磁盘缓存 DiskLruCache
- 事件驱动模型
- 限制输入字数
- Java重载和重写
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListene