新建日期类,并利用冒泡排序、选择排序、二分法寻找指定日期

    public class TestDateSort{
        public static void main(String[] args){
            Date[] date=new Date[5];
            date[0]=new Date(2006,5,4);
            date[1]=new Date(2006,7,4);
            date[2]=new Date(2008,5,4);
            date[3]=new Date(2004, 5, 9);
            date[4]=new Date(2004, 5, 4);
            Date d=new Date(2006,7,4);
            //bubbleDateSort(date);
            selectionDateSort(date);
            for(int i=0;i<date.length;i++){
                System.out.println(date[i]);
                }
        System.out.println(binaryDate(date,d));
            }
        public static void bubbleDateSort(Date[] date){
            for(int i=0;i<date.length-1;i++){
                for(int j=0;j<date.length-1;j++){
                    if((date[j].compare(date[j+1])>0)){
                        Date d=null;
                        d=date[j];
                        date[j]=date[j+1];
                        date[j+1]=d;
                        }
                    }
                }
            }
        public static void selectionDateSort(Date[] date){
            for(int i=0;i<date.length-1;i++){
                for(int j=i+1;j<date.length;j++){
                    if(date[i].compare(date[j])>0){
                        Date d=null;
                        d=date[i];
                        date[i]=date[j];
                        date[j]=d;
                        }
                    }
                }
            }
        public static void insertDateSort(Date[] date){

            }
        public static int binaryDate(Date[] date,Date d){
            int startPos=0;
            int endPos=date.length-1;
            int m=(startPos+endPos)/2;
            while((date[startPos].compare(date[endPos]))<0){
                if((date[m].compare(d))==0) return m;
                if((date[m].compare(d))>0){
                    endPos=m-1;
                    m=(startPos+endPos)/2;
                    }
                if((date[m].compare(d))<0){
                    startPos=m+1;
                    m=(startPos+endPos)/2;
                    }
                }
            return -1;
            }
        }
    class Date{
        private int year;
        private int month;
        private int date;
        public Date(int year,int month,int date){
            this.year=year;
            this.month=month;
            this.date=date;
            }
        public String toString(){
            return "year-month-date:"+year+"-"+month+"-"+date;
            }
        public int compare(Date d){
            if(this.year<d.year){
                return -1;
            }else if(this.year>d.year){
                return 1;
            }else{
                if(this.month<d.month){return -1;}else if(this.month>d.month){
                    return 1;
                }else{
                    if(this.date<d.date){return -1;}else if(this.date>d.date){
                        return 1;
                    }else{
                        return 0;
                        }
                    }
                }
            }

        }
时间: 2024-10-16 18:15:47

新建日期类,并利用冒泡排序、选择排序、二分法寻找指定日期的相关文章

冒泡排序,选择排序,二分法

public class Paixu { public static void main(String[] args) { int[]arr={1,2,8,10,18,22,28,100,20}; /* //选择排序 从小到大 for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if (arr[i]>arr[j]) { int tmp=arr[i]; arr[i]=arr[j]

C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序

以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序,然后是測试的样例.代码位置:http://download.csdn.net/detail/luozuolincool/8040027 排序类: public class Sortings { //插入排序 public void insertSort(int[] array) { int temp = 0; int index = 0; for (int i = 0; i <

C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序

下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子.代码位置:http://download.csdn.net/detail/luozuolincool/8040027 排序类: public class Sortings { //插入排序 public void insertSort(int[] array) { int temp = 0; int index = 0; for (int i = 0; i <

经典排序:冒泡排序+选择排序 小结

经典排序:冒泡排序+选择排序 例 FJUTOJ 1842 冒泡排序 原理是取相邻两个数进行大小比较,判断是否交换. 以从小到大排序为例,冒泡排序就像气泡一样,最小的数慢慢浮上来,最大的数慢慢沉下去.那么完整从头到尾做一次之后最后一位就是原序列中最大的数字了.然后只需要对1~(n-1)个数字进行排序,完成后倒数第二个数字也为原序列的1~n-1元素中最大的值.如此重复,进行n-1次一定能完成排序.参考代码: 1 #include <stdio.h> 2 void BubbleSort(int *,

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定

过三关 Java冒泡排序选择排序插入排序小练习

材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选择用插入排序法,来进行排序. 测试类: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //功能:猴子排序 public class MonkeySelect {

基本排序算法(冒泡排序 选择排序 插入排序 快速排序 归并排序 基数排序 希尔排序)

冒泡排序 public static void bubbleSort(int[] arr){ int lgn = arr.length; for (int i = 0; i < lgn - 1; i++) { for (int j = 0; j < lgn - 1 - i; j++) { if(arr[j] > arr[j + 1]){ int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } } 选择排序 publ

8.8 冒泡排序 选择排序 二分查找 递归使用

冒泡排序: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100000 #define M 100000 void show_arr(int * a,int n) { int i; for(i = 0; i < n; i++) { printf("%d ",a[i]); } printf("\n"); } void init_arr(in

C 冒泡排序 选择排序

数组的冒泡排序与选择排序 [email protected]:~/select$ cat main.c  #include <stdio.h> #include <stdlib.h> int swap_conut  = 0 ; //记录交换次数 int loop_count  = 0 ; //记录循环次数 void swap(int *a,int *b) //指针级 数据交换 { //一个数连续异或同样的数两次,还是这个数 //相同位结果为0,不同位结果为1 *a = *a ^ *