排序算法——冒泡,插入,选择排序

冒泡排序

冒泡排序是一种简单的排序算法
实际上是每一次排序都会将最大的元素放到最后
比较相邻的元素,如果第一个比第二个大,就交换他们两个
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数
针对所有的元素重复以上的步骤

点击查看代码
     int len = arr.length;
        for (int i = 0; i < len - 1; i++) {
            boolean flag = true;
            for (int j = 0; j < len - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;
                    flag = false;
                }
            }
            if (flag) {
                break;
            }
        }

** 选择排序**

首先在末排序序列中找到最小元素,存放到排序序列的起始位置
再从剩余没有排序的元素再找到最小的元素,然后放到已排序序列的末尾
然后重复剩余元素

点击查看代码

        int len = arr.length;
        for (int i = 0; i < len - 1; i++) {
            int minVal = i;
            for (int j = i + 1; j < len; j++) {
                if (arr[minVal] > arr[j]) {
                    minVal = j;
                }
            }
            if (minVal != i) {
                int tmp = arr[i];
                arr[i] = arr[minVal];
                arr[minVal] = tmp;
            }
        }

插入排序

首先从第一个元素开始,该元素被认为是有序的
取出第一个元素,在已经排序的元素序列中从后往前进行扫描
如果该已经排好序的元素大于新元素,则将该元素移到下一位置
重复步骤,一直到找到已排序的元素小于或者等于新元素的位置

点击查看代码
 for (int i = 1; i < arr.length; i++) {
            int val = arr[i];
            int j = i;
            while (j > 0 && val < arr[j - 1]) {
                arr[j] = arr[j - 1];
                j--;
            }
            arr[j] = val;

            
        }
posted @ 2023-10-30 22:00  奕帆卷卷  阅读(14)  评论(0)    收藏  举报