致命缺点是时间复杂度达到了 O(n^2) 。冒泡排序可以在算法中添加一个变量记录每轮迭代中是否发生位置交换,如果某一轮发现没有任何位置交换,说明数组已经是有序的,可以直接退出,无需再进行后续迭代了。...return nums
选择排序
每一轮选择整个数组中最小(或者最大)的元素将其和数组中第0个(或者最后一个)交换位置,找到最小(或最大)的元素后,剩下的元素继续重复这个操作。...举个例子:对于数组[5,2,5,3,1],在第一轮迭代中交换变成了[1,2,5,3,5],这样原本排在前面的5移动到了第2个5的后面。...[min],nums[i]=nums[i],nums[min]
return nums
插入排序
从数组第1个元素开始枚举,依次和左侧的数值比较,直到找到一个比它还小的数,就插入到这个数的后面...,由于子数组都是有序的,所以只需从2个子数组的开头开始,依次比较,较小的那个填入到新数组,即将两个有序数组合并成一个有序数组。