java-数组排序算法

1.数组排序算法-冒泡排序算法

作用:可以对整数数组中的元素进行排序,与Arrays.sort方法的作用一样,唯一的区别是sort方法可以对任意的类型数组进行排序。

例子:

public class P_1 {

    public static void main(String args[]) {
        int[] a = new int[] {5,2,6,7,3,9};
        P_1 p = new P_1();
        p.mysort(a);
        p.showarray(a);
    }
    
    public void mysort(int[] a) {
        for(int i=1;i<a.length;i++) {  //比较的次数(25次)
            for(int j=0;j<a.length-1;j++) {   //两个数进行比较,大的数往后移。
                if(a[j]>a[j+1]) {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
    }
    
    public void showarray(int[] a) {
        for(int i=0;i<a.length;i++) {
            System.out.println(a[i]);
        }
    }
}

2.直接选择排序

作用:直接选择排序的作用跟冒泡排序一样,是对数组元素进行排序,优势在于直接选择排序算法比较的次数比冒泡排序算法少。

例子:

public class P_1 {

    public static void main(String args[]) {
        int[] a = new int[] {5,2,6,7,3,9};
        P_1 p = new P_1();
        p.mysort(a);
        p.showarray(a);
    }
    
    public void mysort(int[] a) {
        int sum = 0;
        int index;
        for(int i=1;i<a.length;i++) {  //比较的次数
            index = 0;
            for(int j=1;j<=a.length - i;j++) {  //从数组第一个元素开始比较,最大的数移到最后,赋值给a[index]。
                if(a[j]>a[index]) {
                    index = j;
                }
                sum++;
            }
            int temp = a[a.length-i];  
            a[a.length-i] = a[index];  //将最大的数复制给最后数组的最后一个元素。
            a[index] = temp;
        }
        System.out.println("次数"+sum);  //总共比较15次
    }
    
    public void showarray(int[] a) {
        for(int i=0;i<a.length;i++) {
            System.out.print(">"+a[i]);
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/wumingzhong/p/9174168.html