java排序

来源:互联网 发布:阿里云 域名解析到网址 编辑:程序博客网 时间:2024/04/30 23:34
package test;/** * * @author ChenYeKe */import java.util.*;public class Test {    public static void BubbleSort(int data[]) {        for (int i = 0; i < data.length - 1; i++) {            for (int j = 0; j < data.length - i - 1; j++) {                if (data[j] > data[j + 1]) {                    int temp = data[j];                    data[j] = data[j + 1];                    data[j + 1] = temp;                }            }        }    }    public static void SelectionSort(int data[]) {        int minVal;        int minIndex;        for (int i = 0; i < data.length - 1; i++) {            minVal = data[i];            minIndex = i;            for (int j = i + 1; j < data.length; j++) {                if (data[j] < minVal) {                    minVal = data[j];                    minIndex = j;                }            }            if (minVal != data[i] && minIndex != i) {                data[minIndex] = data[i];                data[i] = minVal;            }        }    }    public static void InsertionSort(int data[]) {        for (int i = 1; i < data.length; i++) {            for (int j = i; j > 0; j--) {                if (data[j] < data[j - 1]) {                    int temp = data[j];                    data[j] = data[j - 1];                    data[j - 1] = temp;                }            }        }    }    public static void MergeSort(int data[], int start, int end) {        if (start < end) {            int mid = (start + end) / 2;            MergeSort(data, start, mid);            MergeSort(data, mid + 1, end);            merge(data, start, mid, end);        }    }    public static void merge(int data[], int start, int mid, int end) {        int temp[] = new int[end - start + 1];        int i = start;        int j = mid + 1;        int k = 0;        while (i <= mid && j <= end) {            if (data[i] < data[j]) {                temp[k++] = data[i++];            } else {                temp[k++] = data[j++];            }        }        while (i <= mid) {            temp[k++] = data[i++];        }        while (j <= end) {            temp[k++] = data[j++];        }        for (k = 0, i = start; k < temp.length; k++, i++) {            data[i] = temp[k];        }    }    public static void QuickSort(int data[], int start, int end) {        if (end - start <= 0) {            return;        }        int last = start;        for (int i = start + 1; i <= end; i++) {            if (data[i] < data[start]) {                int temp = data[++last];                data[last] = data[i];                data[i] = temp;            }        }        int temp = data[last];        data[last] = data[start];        data[start] = temp;        QuickSort(data, start, last - 1);        QuickSort(data, last + 1, end);    }    public static void main(String[] args) {        int[] a = new int[10];        Scanner cin = new Scanner(System.in);        for (int i = 0; i < 10; i++) {            a[i] = cin.nextInt();        }        // BubbleSort(a);        // SelectionSort(a);        // InsertionSort(a);        // MergeSort(a,0,a.length-1);        QuickSort(a, 0, a.length - 1);        for (int i = 0; i < a.length; i++) {            System.out.print(" " + a[i]);        }    }}
0 0
原创粉丝点击