各种排序算法汇总

Step01:冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至一端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
然后比较第2个数和第3个数,将小数放前,大数放后,
如此继续,直至比较最后两个数,将小数放前,大数放后。

重复第一趟步骤,直至全部排序完成。

public class Sort01_BubbleSort {

    public static void main(String agrs[]) {

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
        System.out.println("\n"+arr.length);
        System.out.println("before sort:");
        for (int num : arr) {
            System.out.print(num + " ");
        }


        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1-i; j++) {
                if (arr[j] > arr[j + 1]) {//if 后一位的数小,将被往前移动
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
                System.out.println("\n"+"---第"+(i+1)+"轮第"+(j+1)+"次-----");
                for (int num : arr) {
                    System.out.print(num + " ");
                }

            }
        }
        System.out.println("\n"+"---");
        System.out.println("after sort:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

  查看具体执行的过程:

"C:\Program Files\Java\jdk1.8.0_161\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\lib\idea_rt.jar=55246:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_161\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar;D:\00M_IDEA_Project\mavenDemo_idea01\target\classes" Sort01_BubbleSort

10
before sort:
1 2 3 4 5 6 7 8 9 0 
---第1轮第1次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第2次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第3次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第4次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第5次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第6次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第7次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第8次-----
1 2 3 4 5 6 7 8 9 0 
---第1轮第9次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第1次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第2次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第3次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第4次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第5次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第6次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第7次-----
1 2 3 4 5 6 7 8 0 9 
---第2轮第8次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第1次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第2次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第3次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第4次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第5次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第6次-----
1 2 3 4 5 6 7 0 8 9 
---第3轮第7次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第1次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第2次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第3次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第4次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第5次-----
1 2 3 4 5 6 0 7 8 9 
---第4轮第6次-----
1 2 3 4 5 0 6 7 8 9 
---第5轮第1次-----
1 2 3 4 5 0 6 7 8 9 
---第5轮第2次-----
1 2 3 4 5 0 6 7 8 9 
---第5轮第3次-----
1 2 3 4 5 0 6 7 8 9 
---第5轮第4次-----
1 2 3 4 5 0 6 7 8 9 
---第5轮第5次-----
1 2 3 4 0 5 6 7 8 9 
---第6轮第1次-----
1 2 3 4 0 5 6 7 8 9 
---第6轮第2次-----
1 2 3 4 0 5 6 7 8 9 
---第6轮第3次-----
1 2 3 4 0 5 6 7 8 9 
---第6轮第4次-----
1 2 3 0 4 5 6 7 8 9 
---第7轮第1次-----
1 2 3 0 4 5 6 7 8 9 
---第7轮第2次-----
1 2 3 0 4 5 6 7 8 9 
---第7轮第3次-----
1 2 0 3 4 5 6 7 8 9 
---第8轮第1次-----
1 2 0 3 4 5 6 7 8 9 
---第8轮第2次-----
1 0 2 3 4 5 6 7 8 9 
---第9轮第1次-----
0 1 2 3 4 5 6 7 8 9 
---
after sort:
0 1 2 3 4 5 6 7 8 9 
Process finished with exit code 0

 

 

猜你喜欢

转载自www.cnblogs.com/qianjinyan/p/9199026.html