【排序算法】冒泡排序
1 前言
今天把排序的几个算法过一下,这节我们看一下冒泡排序,简单的来说就是相邻两个两两交换,我们看示例。
2 代码示例
/** * 冒泡排序 * 相邻两个逐步交换,每轮选出一个最大的 * 假设待排序的数量为:n * 考虑的两点: * 1、外层循环,那要进行 n-1 轮,即可排完 所以外层的循环是 1 -> n - 1 * 2、内层循环,始终是从0开始,到 n-轮数-1 因为比较的时候比较的是 j、j+1已经把该轮最后一个包含了所以减1 * 所以内层的循环时 0 -> n-轮数-1 由于外层循环刚好是1开始 所以就是 0 -> n - i * @param arr */ public static void bubbleSort(int[] arr) { // 轮数 for (int i = 1; i < arr.length; i++) { // 内存相邻比较交换位置 for (int j = 0; j < arr.length - i; j++) { // 升序,大的往后放 if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } public static void main(String[] args) { int[] arr = IntStream.generate(() -> ThreadLocalRandom.current().nextInt(10000)).limit(10000).toArray(); System.out.println("排序前:" + Arrays.stream(arr).mapToObj(String::valueOf).collect(Collectors.joining(","))); bubbleSort(arr); System.out.println("排序后:" + Arrays.stream(arr).mapToObj(String::valueOf).collect(Collectors.joining(","))); }
3 小结
有写的不对的地方,欢迎指正哈。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了