Open cj0x39e opened 5 years ago
sort函数是选择排序算法么?
sort函数是选择排序算法么?
最新的 V8 ,使用的是 TimSort
/**
/**
- 选择排序
- 查找列表最小值索引
- @param {Array} list 待查找的列表 */ function selectionSort(list) { for(let i=0,len=list.length;i<len;i++){ for(let j=i+1;j<len;j++){ if(list[i]>list[j]){ [list[i],list[j]]=[list[j],list[i]];//交换位置 } } } }
这个更符号冒泡排序的特征O(∩_∩)O哈!
/**
- 选择排序
- 查找列表最小值索引
- @param {Array} list 待查找的列表 */ function selectionSort(list) { for(let i=0,len=list.length;i<len;i++){ for(let j=i+1;j<len;j++){ if(list[i]>list[j]){ [list[i],list[j]]=[list[j],list[i]];//交换位置 } } } }
这个更符号冒泡排序的特征O(∩_∩)O哈!
好像是的,我再写一个
function selectionSort(list){
let len=list.length;
if(len==0){return }
for(let i=0;i<len;i++){
let minIndex=i;
for(let j=i+1;j<len;j++){
if(list[minIndex]>list[j]){
minIndex=j
}
}
[list[i],list[minIndex]]=[list[minIndex],list[i]];
}
}
这个应该是选择排序的算法
就在你实现的代码里面 选择排序 不稳定性体现在哪里。或者说哪里可能会造成不稳定
问题
给定下面的数组,请使用 选择排序 算法使其按从小到大的顺序排列?
...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔 ...🤔
丰橙解答
时间复杂度
O(n x n)
可视化链接
https://algorithm-visualizer.org/brute-force/selection-sort
测试链接
因为 leetcode 测试用例很多,所以在 leetcode 测试通过就行了: https://leetcode-cn.com/problems/sort-an-array/