简单的实现下选择排序和冒泡排序
1、选择排序
public class NumSort {
public static void main(String args[]){
int[] a = new int[args.length];
for(int i=0; i<args.length;i++){
a[i] = Integer.parseInt(args[i]);
}
print(a);
selectionSort(a);
print(a);
}
private static void selectionSort(int[] a){
int k, temp;
for(int i=0; i<a.length; i++){
k = i; //一种优化,不必对每次比较结果交换顺序
for(int j=k+1; j<a.length; j++){
if(a[j]<a[k]){
k = j;
}
}
if(k != i){
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
private static void print(int[] a){
for(int i=0; i<a.length; i++){
System.out.print(a[i] + " ");
}
System.out.println();
}
}
2、冒泡排序
对Date型数据排序
public class TestDateSort {
public static void main(String args[]){
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);
bubbleSort(days);
for(int i=0; i<days.length; i++){
System.out.println(days[i]);
}
}
public static Date[] bubbleSort(Date[] a){
int len = a.length;
for(int i = len-1; i>=1; i--){
for(int j = 0; j<=i-1; j++){
if(a[j].compare(a[j+1])>0){
Date temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
}
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;
}
public String toString(){
return "Year:Month:Day -- " + year + "-" + month + "-" +day;
}
}
P:纯属菜鸟练手,贴此做复习之用
分享到:
相关推荐
选择排序和冒泡排序是两种基本的排序算法,它们都是原地排序,即不需要额外的存储空间。然而,它们在效率上有所不同,选择排序的时间复杂度为O(n^2),冒泡排序同样也是O(n^2),但在实际操作中,对于部分有序的数组,...
这是根据数据结构书上讲的线性表的排序方法改写成链表,上面有简单的测试程序。
交换排序 选择排序 冒泡排序 插入排序
冒泡排序和选择排序是两种基础的排序算法,它们在计算机科学中有着广泛的应用,尤其在教学和理解排序原理时非常关键。这两种算法虽然简单,但在特定情况下可以通过优化提高效率。 首先,我们来详细探讨冒泡排序。...
以上六种排序算法各有优缺点,如选择排序和冒泡排序时间复杂度较高,但实现简单;插入排序在部分有序的情况下效率较高;基数排序适用于处理大量整数排序;快速排序平均性能优秀,但最坏情况下时间复杂度较高;归并...
选择排序和冒泡排序适合初学者理解排序的基本原理,而快速排序则在实际应用中表现出较高的效率。折半查找则在处理有序数据时展现出高效性。理解并熟练掌握这些基础算法,对于提升编程技能和解决问题的能力有着极大的...
本资源包含三个经典的排序算法的源代码:插入排序、选择排序和冒泡排序,这些都是初级到中级程序员常学习和使用的算法。下面将详细介绍这三个排序算法的工作原理、特点以及代码实现。 1. **插入排序(Insertion ...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
在提供的压缩包文件中,你可能会找到三个文件:一个测试类,以及分别实现选择排序和冒泡排序的Java源代码文件。测试类通常包含了调用这两个排序算法的实例,并可能包含了一些测试数据,以便于验证算法的正确性。你...
选择排序和冒泡排序是两种基础的排序算法,在计算机科学特别是编程领域中有着广泛的应用。它们主要用于对数组或列表中的元素进行升序或降序排列。这两种方法虽然都是基于比较来实现排序,但它们的工作机制和效率却...
今天,我们将详细介绍C语言中的排序算法,包括选择排序和冒泡排序。 一、选择排序算法 选择排序算法是一种简单的排序算法,它的基本思想是每次选择当前未排序的最小元素,并将其交换到当前未排序的数据的开头。该...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本文将深入探讨两种基本的排序算法:选择排序和冒泡排序,并通过实际代码实现和时间复杂度分析进行比较。 选择排序是一种简单直观的排序算法。它的基本思想是,在未排序的序列中找到最小(或最大)的元素,存放到...
本主题将详细介绍三种基本的排序算法:快速排序、选择排序和冒泡排序,以及它们在Java中的实现。 1. **快速排序**: 快速排序是一种高效的分治算法,由C.A.R. Hoare在1960年提出。其主要思想是通过一趟排序将待排...
冒泡排序和选择排序是两种基础的排序算法,在计算机科学中有着广泛的应用,尤其是在学习编程语言如C语言时,理解并能实现这两种排序算法是非常重要的。下面将详细讲解这两种排序方法以及它们在C语言中的实现。 **...
在实际应用中,更高效的排序算法如快速排序、归并排序、堆排序等被广泛使用,它们的性能通常优于选择排序和冒泡排序。 在互联网和CS领域,理解并掌握各种排序算法的原理和性能特点是非常重要的,这有助于开发者根据...
这里我们将深入探讨三种基本的排序算法:插值排序、选择排序和冒泡排序,这些都是在“sort.zip”压缩包文件中提供的实现。 **插值排序**是一种线性时间复杂度的排序算法,它基于插值搜索的概念。在插值排序中,我们...