请问用java有几种实现数据排序的方法?(请附实现代码)

java的排序一共有多少钟?实现的详细代码是什么?

排序算法是数据结构的东西 和语言是没关系的
冒泡:[code="java"]public class BubbleSort {
public static void bubbleSort(int[] array) {
int length = array.length - 1;
for (int out = length; out > 0; out--) {
for (int in = 0; in < out; in++) {
if (array[in] > array[in + 1]) {
int s = array[in];
array[in] = array[in + 1];
array[in + 1] = s;
}
}
}
}

}[/code]
插入:[code="java"]public class InsertSort {
public static void sort(int[]array){
int length=array.length;
for(int out=1;out int temp=array[out];
int in=out;
while(in>0&&array[in-1]>temp){
array[in]=array[in-1];
--in;
}
array[in]=temp;
}
}
}[/code]
选择:[code="java"]public class SelectSort {
public static void sort(int[]array){
for(int out=0;out<array.length-1;out++){
int min=out;
for(int in=out+1;in<array.length;in++){
if(array[in]<array[min]){
min=in;
}
}
int t =array[out];
array[out]=array[min];
array[min]=t;
}
}
}
[/code]
希尔:[code="java"]public class SheelSort {
private int[] hs;

private int[] a;

public void sort(){
    for(int h:hs){
        for(int i=h;i<a.length;i++){
            int in=i;
            int inValue=a[i];
            while(in-h>-1&&a[in-h]>inValue){
                a[in]=a[in-h];
                in=in-h;
            }
            a[in]=inValue;
        }
    }
}


public int[] getHs() {
    return hs;
}

public void setHs(int[] hs) {
    this.hs = hs;
}

public int[] getA() {
    return a;
}

public void setA(int[] a) {
    this.a = a;
}

}[/code]

快速:[code="java"]public class SpeedSort {
private int[] a;

public void sort() {
    int begin = 0;
    int end = a.length - 1;
    quickSort(begin, end);
    for (int i : a) {
        System.out.print(i + " ");
    }
}

private void quickSort(int begin, int end) {
    if (begin >= end) {

    } else {
        int pivot = a[end];
        int result = getPivot(begin, end, pivot);
        quickSort(begin, result - 1);
        quickSort(result + 1, end);
    }

}

private int getPivot(int begin, int end, int pivot) {
    begin = begin - 1;
    int o = end;
    while (true) {
        while (a[++begin] < pivot) {

        }
        while (end > 0 && a[--end] > pivot) {

        }
        if (begin >= end) {
            break;
        } else {
            swap(begin, end);
        }
    }
    swap(begin, o);
    return begin;
}

private void swap(int begin, int end) {
    int t = a[begin];
    a[begin] = a[end];
    a[end] = t;
}

public int[] getA() {
    return a;
}

public void setA(int[] a) {
    this.a = a;
}[/code]

自己写的 凑合看吧

任何排序都可以

数据结构和算法中有几种java中就有几种。常用的在java.util包里面,比如TreeMap,TreeSet之类的。另外,自定义排序需要实现java.lang.Comparable接口,具体看jdk文档。还有google collections,commons collections也提供了一些排序的集合类,这个就太多了。

[quote="vieri122"]任何排序都可以[/quote]
同意!

Java类库中的主要的排序算法实现在Arrays.sort()和Collections.sort()方法中,Arrays.sort()对基本类型的排序使用快速排序,对引用类型的排序使用合并排序。Collections.sort()使用合并排序。使用合并排序是为也保证排序的稳定性。

具体代码可以参考我实现的《算法导论》中的算法:http://lifethinker.iteye.com/admin/blogs/248092

各种排序算法java实现
[url]http://blog.csdn.net/lschou520/archive/2008/10/29/3176422.aspx[/url]

每种方法都有