使用JAVA进行冒泡排序,选择排序

目录

使用JAVA自带的数组工具类进行排序

冒泡排序

选择排序


使用JAVA自带的数组工具类进行排序

从小到大输出:

//JAVA中自带的数据工具包
import java.util.Arrays;

public class 排序 {
    public static void main(String[] args) {
        //静态齿初始化一个一维数组
        int[] array = {1,2,77,34,5,999,7,8,399};
        //调用Arrays中的sort方法
        Arrays.sort(array);
        //进行遍历输出
        for(int i = 0 ; i<= array.length-1 ; i++ ){
            System.out.println(array[i]);
        }
    }
}

结果图:

 使用JAVA进行冒泡排序,选择排序_第1张图片

从大到小输出:

//JAVA中自带的数据工具包
import java.util.Arrays;

public class 排序 {
    public static void main(String[] args) {
        //静态齿初始化一个一维数组
        int[] array = {1,2,77,34,5,999,7,8,399};
        //调用Arrays中的sort方法
        Arrays.sort(array);
        //进行遍历输出
        for(int i = array.length-1 ; i>=0 ; i-- ){
            System.out.println(array[i]);
        }
    }
}

结果图:

使用JAVA进行冒泡排序,选择排序_第2张图片

冒泡排序

冒泡排序(Bubble Sort):是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。

冒泡排序的原理:
每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是要进行 n-1 趟操作。

而 “每一趟 ” 都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面两个相邻的两个数大小关系,重复此步骤,直到最后一个还没归位的数。

下图转载博客https://blog.csdn.net/hcz666/article/details/117810787?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-117810787.nonecase&spm=1018.2226.3001.4187https://blog.csdn.net/hcz666/article/details/117810787?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-117810787.nonecase&spm=1018.2226.3001.4187
在这里插入图片描述

public class 冒泡排序 {
    public static void main(String[] args) {
        //静态初始化一个一维数组
        int[] array = {22, 33, 123, 2, 0, 77, 231, 9};
        //七个数据只需要比较6次,所以此处循环不能等于length-1
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                //相邻两个数进行比较
                if (array[j] > array[j + 1]) {
                    //定义一个int类型的变量,接收数值大的数
                    int num = array[j];
                    //进行数据交换
                    array[j] = array[j + 1];
                    array[j + 1] = num;
                }
                }
            }
        //进行遍历输出
        for (int i = 0; i <= array.length - 1; i++) {
            System.out.println(array[i]);
        }
    }
}

结果图:

使用JAVA进行冒泡排序,选择排序_第3张图片

选择排序

选择排序的基本思想:
找到当前数字序列中最大(最小)的数,记录其所在位置,将其和最前面(最后面)的数进行交换,使最小(最大)的元素上浮(下沉)到本次排序的最前面(最后面),从而完成一趟(pass)排序。下一趟排序时,已经有序的元素不再参与

public class 选择排序 {
    public static void main(String[] args) {
        //静态初始化一个一维数组
        int[] array = {2, 1, 4, 3, 22, 13};
        
        for (int i = 0; i < array.length ; i++) {
            //定义最小元素的下标
            int min = i;
            //找出最小元素的下标
            for (int j = i + 1; j < array.length ; j++) {
                if (array[j] < array[min]) {
                    //下标进行交换
                    min = j;
                }
            }
            //进行元素交换
            if (array[i] > array[min]) {
                int temp = array[i];
                array[i] = array[min];
                array[min] = temp;
            }
        }
        //遍历输出
        for (int i = 0; i <= array.length - 1; i++) {
                System.out.println(array[i]);
            }

    }
}

结果图:

使用JAVA进行冒泡排序,选择排序_第4张图片

你可能感兴趣的:(JavaSE基础知识,算法,java,算法,排序算法)