【排序算法】直接选择排序
1 前言
今天把排序的几个算法过一下,这节我们看一下直接选择排序,简单的来说就是默认某个位置为最小然后从位置后的元素逐个比较进行交换,我们看示例。
2 代码示例
/** * 直接选择排序 * 直接选择相当于直接把第 i 个看作是最大或者最小,然后依次跟后边的每个元素进行比较,比我小的就跟我交换一下 * 假设待排序的数量为:n * 要考虑的是: * 1、还是需要 n-1 轮 * 2、因为首先我们要从第一个(也就是索引为 0) 的开始,那么外层循环就是 0 -> n-1 * 内层循环就从 外层索引+1的位置开始到最后一个 */ public static void selectSort(int[] arr) { // 外层循环既是直接选择的索引位置 也是要进行的轮数 for (int i = 0; i < arr.length - 1; i++) { // 内层循环从外层索引 + 1 的位置开始到最后一个 for (int j = i+1; j < arr.length; j++) { // 升序,比我小的就跟我换位置 if (arr[j] < arr[i]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = 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(","))); selectSort(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:你的「微服务管家」又秀新绝活了