美文网首页
冒泡排序(基于java)

冒泡排序(基于java)

作者: There_7f76 | 来源:发表于2019-10-20 00:49 被阅读0次
    
    import java.util.Random;
    
    /**
     * 冒泡排序算法
     * 步骤:
     *  1.对数组中的相邻的两个数据进行比较。
     *  2.如果前面的数据大于后面的数据就交换这两个数据,这样一轮比对下来就可以选出一个最小的了。
     *  3.重复前面的步骤,就可以选出剩下的最小的了
     *
     *  核心原理:内层循环的时候,每次循环就要找出一个最大的或者最小的排好,然后再在剩下的数据中重复之前的操作
     */
    public class Algorithm_BubbleSort {
        public static void main(String[] args) {
            int[] arr=new int[10];
            Random random=new Random();
            for (int i = 0; i < 10; i++) {
                int num = random.nextInt(100)+1;
                arr[i]=num;
            }
            System.out.print("原始数据:");
            for (int i : arr) {
                System.out.print(i+", ");
            }
            BubbleSortUp1(arr);
            System.out.println();
            System.out.print("方法1升序处理之后的数据:");
            for (int i : arr) {
                System.out.print(i+", ");
            }
            BubbleSortLow(arr);
            System.out.println();
            System.out.print("方法1降序处理之后的数据:");
            for (int i : arr) {
                System.out.print(i+", ");
            }
            BubbleSortUp2(arr);
            System.out.println();
            System.out.print("方法2升序处理之后的数据:");
            for (int i : arr) {
                System.out.print(i+", ");
            }
            BubbleSortLow2(arr);
            System.out.println();
            System.out.print("方法2升序处理之后的数据:");
            for (int i : arr) {
                System.out.print(i+", ");
            }
        }
        public static void BubbleSortUp1(int[] arr){
            int temp;
            for (int i = 0; i <arr.length ; i++) {
                for (int j = arr.length-1; i<j; j--) {
                    if (arr[j-1]>arr[j]){
                        temp=arr[j];
                        arr[j]=arr[j-1];
                        arr[j-1]=temp;
                    }
                }
            }
        }
        public static void BubbleSortLow(int[] arr){
            int temp;
            for (int i = 0; i <arr.length ; i++) {
                for (int j = arr.length-1; i <j ; j--) {
                    if (arr[j-1]<arr[j]){
                        temp=arr[j];
                        arr[j]=arr[j-1];
                        arr[j-1]=temp;
                    }
                }
            }
        }
        private static void BubbleSortUp2(int[] arr) {
            int temp;
            for (int i = arr.length; i >=0 ; i--) {
                for (int j = 0; j <i-1 ; j++) {
                    if (arr[j]>arr[j+1]){
                        temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }
        private static void BubbleSortLow2(int[] arr) {
            int temp;
            for (int i = arr.length; i>=0 ; i--) {
                for (int j = 0; j <i-1 ; j++) {
                    if (arr[j]<arr[j+1]){
                        temp=arr[j+1];
                        arr[j+1]=arr[j];
                        arr[j]=temp;
                    }
                }
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:冒泡排序(基于java)

          本文链接:https://www.haomeiwen.com/subject/oblomctx.html