常见排序算法Java版(待续)

  1. 冒泡排序O(n^2)

    java 复制代码
    public class Main {
        public static void main(String[] args) {
            Random random = new Random();
            int[] nums = new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};
            for (int i = nums.length - 1; i >= 0; i--) {
                for (int j = 0; j < i; j++) {
                    if (nums[j] > nums[j + 1]) {
                        int temp = nums[j];
                        nums[j] = nums[j + 1];
                        nums[j + 1] = temp;
                    }
                }
            }
            for (int num : nums) {
                System.out.print(num + " ");
            }
        }
    }
  2. 选择排序O(n^2),

    java 复制代码
    public class Main {
        public static void main(String[] args) {
            Random random = new Random();
            int[] nums = new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};
            int index;
            for (int i = 0; i < nums.length; i++) {
                index = i;//每一轮记录最小值的索引
                for (int j = i + 1; j < nums.length; j++) {
                    if (nums[j] < nums[index]) {
                        index = j;
                    }
                }
                if (index != i) {
                    int temp = nums[i];
                    nums[i] = nums[index];
                    nums[index] = temp;
                }
            }
            for (int num : nums) {
                System.out.print(num + " ");
            }
        }
    }
  3. 插入排序O(n^2)

    java 复制代码
    public class Main {
        public static void main(String[] args) {
            Random random = new Random();
            int[] nums = new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};
            int index;
            for (int i = 1; i < nums.length; i++) {
                int rec = nums[i];
                index = i;
                for (int j = i - 1; j >= 0; j--) {
                    if (nums[j] > rec) {
                        nums[index] = nums[j];
                        index = j;
                    } else {
                        break;
                    }
                }
                nums[index] = rec;
            }
            for (int num : nums) {
                System.out.print(num + " ");
            }
        }
    }
相关推荐
xlq22322几秒前
23.二叉树搜索树(下)
数据结构·c++·算法
找不到、了8 分钟前
栈帧四要素:JVM 方法执行的完整上下文
java·jvm
程序员小假8 分钟前
我们来说一说 Redis IO 多路复用模型
java·后端
okseekw11 分钟前
一篇吃透函数式编程:Lambda表达式与方法引用
java·后端
程序员根根11 分钟前
JavaSE 进阶:IO 流核心知识点(字节流 vs 字符流 + 缓冲流优化 + 实战案例)
java
爱装代码的小瓶子11 分钟前
【c++知识铺子】最后一块拼图-多态
java·开发语言·c++
认真敲代码的小火龙12 分钟前
【JAVA项目】基于JAVA的超市订单管理系统
java·开发语言·课程设计
油丶酸萝卜别吃15 分钟前
在springboot项目中怎么发送请求,设置参数,获取另外一个服务上的数据
java·spring boot·后端
lzh2004091918 分钟前
【数据结构】二叉搜索树
数据结构·算法
7哥♡ۣۖᝰꫛꫀꪝۣℋ19 分钟前
SpringBoot 配置⽂件
java·spring boot·后端