选择排序
选择排序是默认前面都是已经排序好的,然后从后面 选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第个元素是已经 排序好的,然后从剩下的找出最小的放到数组的第二个位置,第三轮循环的时候默认前 两个都是已经排序好的,然后再从剩下的选择一个最小的放到数组的第三个位置,以此 类推。还是上面的序列,我们看一下选择排序是怎么做的:
动画演示 :
public static void SelectSort(int[] nums){
int min;
for (int i = 0;i < nums.length;i++){
min = i;
for (int j = i + 1;j < nums.length;j++){
if (nums[i] > nums[j]){
min = j;
}
}
if (i != min){
int temp = nums[i];
nums[i] = nums[min];
nums[min] = temp;
}
}
}
平均时间复杂度:O(n2)
空间复杂度:O(1)
稳定性:选择排序是不稳定算法