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. MySQL 常用命令(持续更新)

    停止启动MySQL服务 停止:net stop mysql启动:net start mysql 查看正在运行的线程 SHOW PROCESSLIST SHOW FULL PROCESSLIST 杀死线 ...

  2. js动态改变时间

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  3. java 标识符命名规则

    标识符:就是给类,接口,方法,变量等起名字. 组成规则: A:英文字母大小写 B:数字字符 C:$和_ 注意事项: A:不能以数字开头 B:不能是Java中的关键字 C:Java语言严格区分大小写 包 ...

  4. delphi action学习

    procedure TEditAction.UpdateTarget(Target: TObject); begin if (Self is TEditCut) then Enabled := (Ge ...

  5. android常见面试问题

    重:Listview中多个类型的条目如何处理?如果条目里边有button,会出现什么问题?如何处理?如果条目里边有checkbox会出现什么问题,如何解决?(这三个问题有过开发经验都应该遇到过). 在 ...

  6. memcpy code

    memcpy #include <stddef.h> //#include <stdint.h> //uintptr_t is quoted.#include "st ...

  7. js判断是否安装pdf播放器

    function isPDFPluginInstall() { if (!isIE()) { //ie 浏览器 和 非ie浏览器支持 // not ie if (navigator.plugins & ...

  8. linux 下tomcat catalina.out日志操作

    1. 查看日志 tail -f catalina.out 会动态打印日志. 2. 查看所有日志 less -f catalina.out 打开所有日志后,默认是显示第一页,常用命令用到如下: G:到达 ...

  9. ORACLE 分析函数整理汇总

    1. 聚合分析函数 SUM MIN MAX AVG COUNT 这类聚合类分析函数可以在窗口中分组

  10. word 批量删除书签

    打开word    按住alt+F11 进入vba 界面 Sub test() Dim MyBk As Bookmark For Each MyBk In ActiveDocument.Bookmar ...