ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 原理 首先从原始数组中找到最小的元素,并把该元素放在数组的最前面,然后再从剩下的元素中寻找最小的元素,放在之前最小元素的后面,直到排序完毕。 # 性能 - 时间复杂度 平均O(n*n) 最好情况O(n*n) 最差情况O(n*n) - 空间复杂度 O(1) - 稳定性 不稳定 # 示例 ``` let array = ['E', 'A', 'D', 'B', 'H'] let selectionSort = (array) => { let minIndex for (let i = 0, length = array.length; i < length; i++) { minIndex = i for (let j = i + 1; j < length; j++) { if (array[j] < array[minIndex]) { minIndex = j } } [array[i], array[minIndex]]= [array[minIndex], array[i]] } return array } console.log(selectionSort(array)) ``` # 解析 minIndex始终保存着最小值的位置的索引,随着i的自增,遍历的数组长度越来越短,直到完成排序。