publicclassCeshi{// 生成随机时间public Date gettime(){
Date time =newDate();long day =24*60*60*1000;long mills =(2000-1970)*365* day +(2000-1970)/4* day - day /3;returnnewDate((long)(Math.random()* mills));}// 时间比较,time1大于2就返回true,不返回数据是为了便于比较完成后交换位置publicbooleancompare(Date time1, Date time2){char[] A =newSimpleDateFormat("HH:mm:ss").format(time1).toCharArray();char[] B =newSimpleDateFormat("HH:mm:ss").format(time2).toCharArray();for(int i =0; i < A.length; i++){if(A[i]> B[i]){returntrue;}if(A[i]< B[i]){returnfalse;}else{continue;}}returnfalse;}// 数字转换为字符串public String changeDatetoString(Date date){
SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);return str;}//快速排序算法public Date[]kspx(Date[] timeOfnine,int start,int end){
Date con=timeOfnine[start];int i=start;int j=end;//一遍快速排序while(i<j){while((i<j)&&compare(timeOfnine[j],con)){
j--;}while((i<j)&&compare(con,timeOfnine[i])){
i++;}if((i<j)&&(timeOfnine[i].equals(timeOfnine[j]))){
i++;}else{
Date cn=timeOfnine[i];
timeOfnine[i]=timeOfnine[j];
timeOfnine[j]=cn;}}//多次排序if(i-1>start)kspx(timeOfnine,start,i-1);if(j+1<end)kspx(timeOfnine,j+1,end);return timeOfnine;}publicstaticvoidmain(String[] args){
Ceshi h =newCeshi();
Date[] timeOfnine =newDate[9];for(int i =0; i <9; i++){
timeOfnine[i]= h.gettime();}
System.out.println("随机时间有:");for(int k =0; k <9; k++){
System.out.print(h.changeDatetoString(timeOfnine[k])+" ");if((k +1)%3==0){
System.out.println();}}
System.out.println("快速排序法排序后的时间有:");//快速排序法for(int i =0; i <9; i++){
System.out.print(h.changeDatetoString(h.kspx(timeOfnine,0,8)[i])+" ");if((i +1)%3==0){
System.out.println();}}
System.out.println("冒泡法排序后的时间有:");// 冒泡法
Date c;for(int j =0; j <8; j++){for(int i =0; i <8-j; i++){if(h.compare(timeOfnine[i], timeOfnine[i +1])){
c = timeOfnine[i];
timeOfnine[i]= timeOfnine[i +1];
timeOfnine[i +1]= c;}}}for(int k =0; k <9; k++){
System.out.print(h.changeDatetoString(timeOfnine[k])+" ");if((k +1)%3==0){
System.out.println();}}}}
准备一个长度是9的日期数组使用1970年-2000年之间的随机日期初始化该数组按照这些日期的时间进行升序排序比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大public class Ceshi { // 生成随机时间 public Date gettime() { Date time = new Date(); long day = 24 * 60 * 60 * 1000; long mills = (200