/*
- @Author: sumBorn
- @Date: 2022-02-23 21:57:10
- @LastEditTime: 2022-02-28 23:39:55
- @Description:
*/
/**
@description:
@param {*}
@return {*}
空间复杂度O(n2)
时间复杂度O(1)
不稳定排序
-
!!!:等于的话,例如 10,10,8,2,等于可以拿到第二个10;不等于的话,两个10相对位置变化,变得不稳定;但是并不是变成等于稳定了,其他情况会出现不稳定情况
*/
public class Solution
{
public void SelectionSort(int[] arr)
{
for (var i = arr.Length - 1; i > 0; i--)
{
int maxIndex = 0;
for (var j = 1; j <= i; j++)
{
if (arr[j] > arr[maxIndex]) //!!!
{
maxIndex = j;
}
}
this.Swap(i, maxIndex, arr);
}
}public void Swap(int i, int j, int[] arr)
{
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}