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. JS settimeout 使用笔记

    无参数使用方法: setTimeout(function_name,delay_time); 基本使用方法是逗号前是函数名字,不能带有 xxxx(),不然不执行: 但是很多函数都要带参数的,以下是解决 ...

  2. 用shell脚本切分task_list,并分别执行的脚本

    #/bin/sh TASK_LIST=$ len=`wc -l $TASK_LIST | awk '{print $1}'` #noExce(){ ) ))'p' $TASK_LIST > $T ...

  3. submit异步提交 回调的方法

    背景: mvc模式下,当submit表单的时候,后台Control自动绑定Model类,但是如果不用submit来提交,改用ajax提交的时候,后台Control无法获取前台form表单内相应Name ...

  4. c# 文件夾操作

    #region 圖片對應異動           string newFilePath = "~/FileUpLoad/Book/" + bookModel.BookNo;     ...

  5. arpg网页游戏之地图(二)

    [转]http://www.cnblogs.com/BlueWoods/p/4684557.html 这一节说说视窗,这个视窗,也就是游戏的视角.现在的网页游戏分为2D游戏,2.5D游戏和3D游戏,2 ...

  6. pt-query-digest查询日志分析工具

    1.工具介绍 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcp ...

  7. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  8. 实现MFC菜单画笔画圆,并且打钩

    这个是用最简单的方法,移动客户区,圆会不见,所以下一篇我还要改进. 首先新建一个MFC单文件,在资源那里的菜单下,建立画笔,可以弹出红画笔,蓝画笔和绿画笔,,给出ID_RED,ID_BLUE,ID_G ...

  9. ArcGIS Wpf MarkerSymbol 图形符号无法序列化为 JSON

    [问题贴,尚不知如何解决] 在GraphicsLayer中添加一个点,使用自定义模板渲染该点,在Vs2012设计界面可以看到,但运行时出现异常 代码如下: <esri:Graphic x:Nam ...

  10. 初步认识JUnit

    初步认识JUnit 目前大多数的基于Java的企业应用软件,肯定少不了单元测试,程序员通过编写单元测试来验证自己程序的有效性:管理者通过持续自动的执行单元测试和分析单元测试覆盖率来确保软件本身的质量. ...