`
i拾贝
  • 浏览: 31067 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java数组排序练习——使用冒泡法排序int型的数组,使用选择排序排序Date型的数组

    博客分类:
  • java
阅读更多

java数组排序练习——使用冒泡法排序int型的数组,使用选择排序排序Date型的数组

PracticeSort.java

/*
	练习,
	使用冒泡法排序int型的数组
	使用选择排序法排序Date型的数组
*/
public class PracticeSort {
	public static void main(String[] args) {
		int[] a = {2, 4, 1, 3, 8, 7, 6, 5, 9, 0};
		
		bubbleSort(a);
		
		for(int i=0; i<a.length; i++){
			System.out.print(a[i] + " ");
		}
		System.out.println();
		
		/////////////////////////////////////////
		
		Date[] days = new Date[5];
		days[0] = new Date(2006, 5, 4);
		days[1] = new Date(2006, 7, 4);
		days[2] = new Date(2008, 5, 4);
		days[3] = new Date(2004, 5, 9);
		days[4] = new Date(2004, 5, 4);
		
		selectionSort(days);
		
		for(int i=0; i<days.length; i++){
			System.out.println(days[i]);
		}
				
	}
	
	//冒泡排序int数组
	public static int[] bubbleSort(int[] a){
		for(int i=a.length-1; i>0; i--){
			for(int j=0; j<=i-1; j++){
				if(a[j] > a[j+1]){
					int temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
		return a;
	}
	
	//选择排序法排序Date型的数组
	private static void selectionSort(Date[] d) {
		int k;
		Date temp;
		for(int i=0; i<d.length; i++) {
			//k为最小的数的位置
			k = i;
			for(int j=k+1; j<d.length; j++) {
				//如果d[k]>d[j],将重新定义最小数的位置
				if(d[k].compare(d[j]) > 0) {			
					k = j;
				}
			}
			//如果k的位置不等于i的位置,交换
			if(k != i) {
				temp = d[i];
				d[i] = d[k];
				d[k] = temp;
			}
		}
	}
}

//定义日期类
class Date {
	int year, month, day;

	Date(int y, int m, int d) {
		year = y; month = m; day = d;
	}

	//比较日期大小
	public int compare(Date date) {
		return year > date.year ? 1
			   : year < date.year ? -1
			   : month > date.month ? 1
			   : month < date.month ? -1
			   : day > date.day ? 1
			   : day < date.day ? -1 : 0;
	}

	//重写toString()
	public String toString() {
		return "Year:Month:Day -- " + year + "-" + month + "-" + day;
	}
}

 

F:\java>javac PracticeSort.java

F:\java>java PracticeSort
0 1 2 3 4 5 6 7 8 9
Year:Month:Day -- 2004-5-4
Year:Month:Day -- 2004-5-9
Year:Month:Day -- 2006-5-4
Year:Month:Day -- 2006-7-4
Year:Month:Day -- 2008-5-4

F:\java>

 

 

 

 

分享到:
评论

相关推荐

    java数组排序

    在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些算法通过比较和交换元素来达到数组元素的有序状态。本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的...

    Java数组练习题(带答案).doc

    4. **二分查找**:二分查找法适用于已排序的数组,通过不断缩小搜索范围快速找到目标元素。 5. **下标类型**:Java中数组的下标是整型(`int`),不能是其他数据类型。 6. **下标范围**:数组的最小下标是0,最大...

    二维数组如何进行冒泡排序

    ### 二维数组冒泡排序详解 #### 一、引言 冒泡排序是一种简单的排序算法,在数据处理领域有着广泛的应用。对于一维数组而言,冒泡排序实现起来相对容易;然而,当涉及到二维数组时,排序的过程就变得复杂起来。...

    java数组自定义排序

    java中数组的自定义排序,种类繁多,简单实现,可自由操控。

    数组应用——一维数组排序

    数组应用——一维数组排序; 定义一组无序的整型数列,共10个数值,经过一定的处理,使该数组由大到小排列,并输出到屏幕上。具体要求如下: 定义int型数组arrayorder并赋初值为0,长度为10,以承载该数列; 使用...

    java数组冒泡法排序

    ### Java数组冒泡法排序详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是通过不断地交换相邻两个元素的位置,使得每一轮遍历后最大的元素能够“浮”到数组的末尾。这种...

    java 冒泡排序 数组冒泡排序

    这样可以在已排序数组或接近排序的数组上提高效率。 ```java public static void optimizedBubbleSort(int[] arr) { int n = arr.length; boolean swapped; for (int i = 0; i ; i++) { swapped = false; for ...

    java数组排序.docx

    Java数组排序是Java语言中对数组进行排序的方法,包括快速排序、选择排序、冒泡排序和插入排序等。这些排序算法都是Java语言中常用的数组排序方法,每种算法都有其特点和应用场景。 冒泡排序是Java语言中的一种基本...

    java 数组递增排序

    首先,最常见的数组排序算法是冒泡排序(Bubble Sort)、选择排序(Selection Sort)、插入排序(Insertion Sort)和快速排序(Quick Sort)。这些算法都有其独特的工作原理和性能特点。 1. **冒泡排序**:冒泡排序...

    Java基础练习之数组的应用——ATM Demo

    在这个"Java基础练习之数组的应用——ATM Demo"项目中,我们将会深入探讨如何利用数组和方法来实现一个简单的自动取款机(ATM)模拟程序。这个练习旨在帮助初学者巩固Java基础知识,特别是对数组的操作和方法的使用...

    随机数排序_20个随机数_数组排序_源码

    4. **冒泡排序**:冒泡排序是一种简单的排序算法,通过不断交换相邻的未排序元素来逐步将最大(或最小)的元素“冒泡”到数组的一端。对于20个元素的数组,冒泡排序的时间复杂度大约为O(n^2),虽然效率不高,但适用...

    java 部分数组递增排序

    2. **选择排序算法**:有许多排序算法可供选择,如冒泡排序、插入排序、选择排序、快速排序、归并排序等。对于小规模的数据或部分排序,简单排序算法如插入排序可能就足够了。对于大规模数据,效率更高的算法如快速...

    文件读出数组进行选择排序和二分查找(java)

    结合这些知识点,开发者可以创建一个Java程序,首先从文件中读取数据到数组,然后使用选择排序对数组进行排序,最后利用二分查找在排序后的数组中查找特定元素。这是一个典型的文件操作与算法应用的实例。

    二维数组排序

    本篇介绍了Java中二维数组排序的实现,主要使用了冒泡排序算法,并且确保了排序过程中同一条记录内的元素不会改变其相对位置。这种排序方式适用于类似Excel表格的场景,在实际应用中具有一定的实用价值。

    Java数组排序算法.docx

    Java数组排序算法主要涵盖三种经典的排序方法:冒泡排序、直接选择排序以及反转排序。这三种算法都是在处理数组数据时,对数组元素按照特定规则进行重新排列的常见方法。 1. **冒泡排序**: 冒泡排序是一种简单的...

    c语言二维数组冒泡排序

    在这个例子中,我们定义了一个3x3的二维数组,并使用冒泡排序对其进行排序。`bubbleSort`函数接受一个二维数组和行数作为参数,然后对每一行进行冒泡排序。注意,这里我们仅以第一列元素进行比较,因为如果需要按照...

    Java数组排序三种方法

    以上介绍了Java中三种常见的数组排序方法:使用`Arrays.sort()`方法、冒泡排序法和直接选择排序法。这三种方法各有优缺点,可以根据实际需求和应用场景来选择合适的排序算法。通常情况下,对于小规模数据,这些算法...

    Java数组练习题带答案.doc

    Java 数组练习题带答案 Java 数组是一种基本的数据结构,用于存储固定大小的同类型元素的集合。本文通过多种练习题和答案,帮助读者更好地理解 Java 数组的概念和应用。 1. 数组元素的访问 数组的元素可以通过...

    数组以及排序算法

    平均时间复杂度为O(n^2),最好情况(已排序数组)为O(n)。 3. 选择排序:每次找出未排序部分的最小(或最大)元素,与未排序部分的第一个元素交换。时间复杂度为O(n^2)。 4. 快速排序:利用分治策略,选取一个基准...

Global site tag (gtag.js) - Google Analytics