惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
博客园_首页
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
小众软件
小众软件
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog

博客园 - Eagle6970

ASP.NET Core实现MCP Streamable HTTP 豆包生成C#微博API HTTP调用实例代码 豆包生成C#即梦API HTTP调用实例代码 SQL Server - sp_spaceused 子网掩码和IP地址范围 [VS Code] Run JavaScript [VS Code] Copy所有包含关键字的行 [数据结构学习笔记25] 归并排序(Merge Sort) [VS Code] 使用dotnet CLI安装和管理NuGet包 [数据结构学习笔记23] 插入排序(Insertion Sort) [数据结构学习笔记22] 冒泡排序(Bubblesort) [数据结构学习笔记21] 快速排序(Quicksort) [数据结构学习笔记20] 深度优先搜索(DFS)和广度优先搜索(BFS) [数据结构学习笔记19] 二叉树遍历(Binary Tree Traversal) [数据结构学习笔记18] 二分查找(Binary Search) [数据结构学习笔记17] 线性查找(Linear Search) [数据结构学习笔记16] 汉诺塔(Towers of Hanoi) [数据结构学习笔记15] 斐波那契数列(Fibonacci) [数据结构学习笔记14] 递归简介(Recursion)
[数据结构学习笔记24] 选择排序(Selection Sort)
Eagle6970 · 2025-02-11 · via 博客园 - Eagle6970

选择排序(Selection Sort)

顾名思义,这个排序的思想是,从未排序的list中,挑出最小的,把它放到最前面,继续这个过程,在剩下的list中找到最小的,放到第二位,依次,直到排序结束。

举例

20,10,17,9,5,1

1,10,17,9,5,20

1,5,17,9,10,20

1,5,9,17,10,20

1,5,9,10,17,20

代码(javascript)

function selectionSort(input) {
    for (let i = 0; i < input.length; i++) {
        let smallestPosition = i;
        for (let j = i+1; J < input.length; j++) {
              if (input[j] < input[smallestPosition]) {
                   smallestPosition = j;
               }
          }

          if (smallestPosition != i) {
               let temp = input[smallestPosition];
               input[smallestPosition] = input[i];
               input[i] = temp;
           }
    }
}

选择排序的效率也低,时间复杂度是O(n^2)。