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

冒泡排序算法

冒泡排序他是通过双重循环对每一个值进行比较,将小的值向后移动,以达到最终排序的结果,他的时间复杂度为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;

        }
    }

未完待续......

相关推荐
IUGEI1 小时前
【后端开发笔记】JVM底层原理-垃圾回收篇
java·jvm·笔记·后端
迈巴赫车主1 小时前
蓝桥杯 20541魔法科考试
java·数据结构·算法·蓝桥杯
饭饭大王6661 小时前
Python 模块的概念与导入:从基础语法到高级技巧
java·服务器·python
u***1371 小时前
SpringBoot项目整合Knife4J
java·spring boot·后端
佐杰1 小时前
Jenkins备份管理
java·运维·jenkins
q***47181 小时前
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
java·数据库·mysql
star learning white2 小时前
xmC语言8
c语言·开发语言·算法
青小俊2 小时前
【代码随想录c++刷题】-二分查找 移除元素 有序数组的平方 - 第一章 数组 part 01
c++·算法·leetcode
DolphinScheduler社区2 小时前
图解 Apache DolphinScheduler 如何配置飞书告警
java·大数据·开源·飞书·告警·任务调度·海豚调度
Han.miracle2 小时前
JavaEE —— 网路编程 Socket套接字
java·java-ee