Public classtestdatesort{ Public Static voidMain (string[] args) {date[] Date=NewDate[5]; date[0]=NewDate (2006,5,4); date[1]=NewDate (2006,7,4); date[2]=NewDate (2008,5,4); date[3]=NewDate (2004, 5, 9); date[4]=NewDate (2004, 5, 4); Date D=NewDate (2006,7,4); //Bubbledatesort (date);Selectiondatesort (date); for(inti=0;i<date.length;i++) {System.out.println (date[i]); } System.out.println (Binarydate (date,d)); } Public Static voidBubbledatesort (date[] Date) { for(inti=0;i<date.length-1;i++){ for(intj=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 voidSelectiondatesort (date[] Date) { for(inti=0;i<date.length-1;i++){ for(intj=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 voidInsertdatesort (date[] Date) {} Public Static intbinarydate (date[] date,date d) {intStartpos=0; intEndpos=date.length-1; intM= (Startpos+endpos)/2; while((Date[startpos].compare (Date[endpos])) <0){ if((Date[m].compare (d)) ==0)returnm; 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; } } classdate{Private intYear ; Private intmonth; Private intdate; PublicDate (intYearintMonthintdate) { This. year=Year ; This. month=month; This. date=date; } PublicString toString () {return"Year-month-date:" +year+ "-" +month+ "-" +date; } Public intCompare (Date d) {if( This.year<d.year) { return-1; }Else if( This.year>d.year) { return1; }Else{ if( This. month<d.month) {return-1;}Else if( This.month>d.month) { return1; }Else{ if( This. date<d.date) {return-1;}Else if( This.date>d.date) { return1; }Else{ return0; } } } } }
Create a new date class, and use bubble sort, select sort, dichotomy to find a specified date