美文网首页
冒泡排序(基于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