经典算法总结

最经典的算法莫过于选择排序和冒泡排序:

在总结之前先看了如下一篇博客:

https://blog.csdn.net/chen13579867831/article/details/78790853

Java中的选择排序和冒泡排序思想及代码实现

博主对这两种排序方法,介绍得比较清楚,不过这里我扣扣其中的细节并加上我自己的一些理解。

  • 选择排序(降序):
   // i 控制排序次数,取值从0到array.length-2,最后一个元素不用取出
        for(int i = 0 ;i<array.length-1;i++) {  

        /* j 控制每次排序比较次数,每次比较从取出来要比较的值后面第一个元素
        开始,到该数组最后一个元素比较结束,所以每次比较j从i+1开始,到
        array.length-1结束*/

            for(int j = i+1;j<array.length;j++) { 
                if(array[i]<array[j]) {
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                    count++;
                }
            }
        }
        System.out.println(Arrays.toString(array));
  • 冒泡排序(降序):
public class BubbleSort {
    public static void main(String[] args){
        //初始化一个数组
        int[] arr = {1,23,4,6,43};

        //外层for循环代表排序次数,数组长度为arr.length-1,共比较arr.length-2次;
        for(int i = 0;i<arr.length-1;i++) {

            //内层for循环代表每次排序比较的次数,每次都是从0索引开始比较;
            //第一次从0比到arr.length-1,比较arr.length-2-0次;
            //第二次从0到arr.length-2,比较arr.length-2-1次;
            //......
            for(int j = 0;j<arr.length-1-i;j++) {
                if(arr[j]<arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

选择排序和冒泡排序小结:
选择排序是把每次比出来的结果往前放,确定前面并在下轮循环中丢弃不参与;冒泡排序是把每次比出来的结果往后放,确定后面并在下轮循环中丢弃不参与。 
关于这两把排序方法,最主要的是掌握其思想,具体推理过程无须掌握,知道如何使用即可。

PS.

再研究一下,快速排序和插入排序。

https://blog.csdn.net/zyj0813/article/details/78296758

JAVA中常见的四种排序--冒泡排序、选择排序、插入排序和快速排序 详解

posted @ 2019-04-20 16:29  代码海洋中的一条鱼  阅读(253)  评论(0编辑  收藏  举报