【数据结构与算法】三种简单排序算法,包括冒泡排序、选择排序、插入排序算法

冒泡排序算法

冒泡排序他是通过双重循环对每一个值进行比较,将小的值向后移动,以达到最终排序的结果,他的时间复杂度为O(n^2)。

java 复制代码
    /**
     * 冒泡排序
     * @param arr
     */
    public static void bubbleSort(int[] arr){
        int l =arr.length;
        for (int i = 0; i <l-1 ; i++) {
            for (int j = 0; j <l-i-1 ; j++) {
                if (arr[j]>arr[j+1]){
                    int temp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }

选择排序算法

选择排序也是进行两次循环遍历,获取最大或最小的值,然后进行交换。他的时间复杂度也为O(n^2)。

java 复制代码
    /**
     * 选择排序算法
     * @param arr
     */
    public static void selectSort(int[] arr){
        int l =arr.length;
        for (int i = 0; i <l-1 ; i++) {
            int minIndex =i;
            for (int j = i+1; j <l ; j++) {
                if (arr[j]<arr[minIndex]){
                    minIndex=j;
                }
            }
            int temp =arr[i];
            arr[i]=arr[minIndex];
            arr[minIndex]=temp;
        }
    }

插入排序算法

插入排序是将一个数在前面已经排好的有序列表中进行遍历,插入到符合顺序的地方。以此来获得一个长度+1的有序列表。他的时间复杂度也为O(n^2)。

java 复制代码
    /**
     * 插入排序算法
     * @param arr
     */
    public static  void  insertSort(int[] arr){
        int l =arr.length;
        for (int i = 1; i <l ; i++) {
            int insert=arr[i];
            int j =i-1;
            while (j>=0&&arr[j]>insert){
                arr[j+1]=arr[j];
                j--;
            }
            arr[j+1]=insert;

        }
    }

未完待续......

相关推荐
Thanwind5 分钟前
JVM中的各类引用
java·jvm·jmm
小河豚oO14 分钟前
LeetCode 热题 100 - 哈希 - 128
算法·leetcode·哈希算法
客卿12316 分钟前
力扣100题之128. 最长连续序列
算法·leetcode·哈希算法
T1an-116 分钟前
【力扣链表篇】206.反转链表
算法·leetcode·链表
RainbowJie118 分钟前
从零到一:Maven 快速入门教程
java·maven
shangjg323 分钟前
Kafka数据怎么保障不丢失
java·分布式·后端·kafka
RainbowJie126 分钟前
Maven的生命周期
java·maven
唐墨12331 分钟前
PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的区别
java·后端·spring
何中应32 分钟前
【设计模式-3.7】结构型——组合模式
java·设计模式·组合模式
爬菜36 分钟前
JUnit
java