public class DateSort {
public static void main(String args[]) {
Date d[] = new Date[11];
d[0] = new Date(2011,10,28);
d[1] = new Date(2008,5,9);
d[2] = new Date(2004,4,9);
d[3] = new Date(2002,8,17);
d[4] = new Date(2004,5,9);
d[5] = new Date(2006,1,23);
d[6] = new Date(2008,8,3);
d[7] = new Date(2003,2,20);
d[8] = new Date(2005,4,9);
d[9] = new Date(2004,5,7);
d[10] = new Date(2001,12,6);

print(d);
selectionSort(d);
print(d);

}

private static void bubbleSort(Date a[]) {

Date temp;

for (int i=0; i<a.length; i++) {
for (int j=0; j<a.length-1; j++) {
if (compare(a[j],a[j+1])) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}

private static void selectionSort(Date a[]) {

Date temp;
int k;

for (int i=0; i<a.length; i++) {
k = i;
for (int j=k+1; j<a.length; j++) {
//select the smaller one;
if (compare(a[k],a[j])) {
k = j;
}
}

if (i != k) {
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}

private static boolean compare(Date a, Date b) {

if (a.year > b.year) {
return true;
}
else if (a.year == b.year) {
if (a.month > b.month) {
return true;
}
else if (a.month == b.month) {
if (a.day > b.day) {
return true;
}
else if (a.day == b.day) {
return false;
}
}
}

return false;

}

private static void print(Date a[]) {
for (int i=0; i<a.length; i++) {
System.out.println(a[i]);
}
System.out.println();
}
}

class Date {

int year, month, day;

Date(int year,int month,int day) {
this.year = year;
this.month = month;
this.day = day;
}

public String toString() {
return (year + ", " + month + ", " + day);
}
}

DateSort选择法、冒泡法排序的更多相关文章

  1. 【Java基础】选择排序、冒泡法排序、二分法查找

    1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i ...

  2. 8. 冒泡法排序和快速排序(基于openCV)

    一.前言 主要讲述冒泡法排序和快速排序的基本流程,并给出代码实现,亲测可用. 二.冒泡法排序 冒泡法排序主要是将相邻两个值比较,把小的向前冒泡,大的向后沉淀,时间复杂度为O(n2).主要思想如下: 分 ...

  3. 冒泡法排序_c++实现

    看完了郝斌老师的c语言视频,冒泡法排序,就试着写了.我觉得学习算法最重要的不是代码,而是它的原理. 代码: /** 2 * Copyright (c) 1991 - 2016 Arvin Tang. ...

  4. Java温故而知新-冒泡法排序

    冒泡法排序是各种初学者在学习数组与循环结构时都会练习的一种简单排序算法. 冒泡法的精髓在于比较相邻的两个元素,较大的元素会不断的排到队伍后面去,就像水里的泡泡一样不断向上跑. 想像一下倒在一个透明玻璃 ...

  5. [C]字符串排序之-冒泡法

    在oj刷题,遇见一题字符串排序题. 脑海里瞬间闪过数组排序. 思路有了,打开题解看看别人的思路,发现好多人的排序方法显得比较臃肿,可能也是我的水平不够,欣赏不来吧. 不过用冒泡法排序的时候一定要记得字 ...

  6. Python 冒泡法排序

    def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...

  7. C#冒泡法排序源码

    如下内容内容是关于C#冒泡法排序的内容,应该对码农有一些用途. int[] myArray = new int[] { 10, 8, 3, 5, 6, 7, 4, 6, 9 }; for( int j ...

  8. [python,2018-01-15] 冒泡法排序

    想写一个冒泡法排序,没什么思路,就先写了个java的 public static void main(String[] args) { int array[] = {88,2,43,12,34,8,6 ...

  9. C语言 · 冒泡法排序

    算法提高 冒泡法排序   时间限制:1.0s   内存限制:512.0MB      输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内. 样例输入 1 3 6 8 2 7 ...

  10. php 冒泡法 排序

    <?php /** * php 冒泡法 * @param $arr * @param string $order 排序符 * @return $arr */ function orderarr( ...

随机推荐

  1. C#如何打开DBF数据库文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 创建一个swift项目

    笔者认为你已经有了oc的开发基础,流程是一样的,选择开发语言为swift即可.这里主要说明一下一些常用的配置: 一般我们不使用XIB和storyboard,所以在系统自动创建的文件中删除main.st ...

  3. Android 环境常见问题

    1.启动adb时报: adb server is out of data.kill... ADB server didn't ACK    *failed to start daemon*    er ...

  4. javascript对象属性的赋值解析

    代码如下: function Animal(){} function Dog (age){ this.name = 'fuck you' ; this.age = age } var dog = ne ...

  5. VS2008 Windows Form项目安装包生成详解

    2008 Windows Form项目的发布对有经验的程序员来说,可能不值一提,但对很多新手来说却不知道如何操作,因为在很多关于Visual Studio的书籍中也没有相关介绍,权威如<C# 2 ...

  6. 文章“Redcing the Dimensiongality of Data with Neural Networks”的翻译

    注明:本人英语水平有限,翻译不当之处,请以英文原版为准,不喜勿喷,另,本文翻译只限于学术交流,不涉及任何版权问题,若有不当侵权或其他任何除学术交流之外的问题,请留言本人,本人立刻删除,谢谢!! 本文原 ...

  7. —linux 磁盘配额按用户管理(quota)

    我根据下面的ref链接整理的基本是的按用户额度管理步骤 (按组的额度管理被简化掉) 我在Ubuntu服务器12.04下整理,其他版本的Ubuntu和Linux应该都没有问题的 (有任何错误都指正给我, ...

  8. TortoiseSVN-1.8.11 安装时弹出2503错误导致安装失败解决办法

    这个问题主要是由于msi格式文件在win8中默认不是以管理员身份运行造成,可通过命令行解决: 右键单击win8左下角启动图标,选择命令提示符(管理员): 输入:msiexec /package 要安装 ...

  9. 关于sql注入

    删除表,先猜表名,可以使用下面的语名: Select * from A where A.a = ‘testdata’; drop table A---’; If a field only allow ...

  10. 关于 this 和 prototype 的理解

    1:this 的理解比较好的书是 <Javascript语言精粹> 平时我们全局写 var a = 1, 其实就是 window.a = 1; var f = function(){},  ...