直接插入排序
稳定性为稳定
时间复杂度最差,最好,平均
空间复杂度
算法逻辑
重复地遍历的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,每次变量都从头开始(可以是末尾也可以是首,以尾为例),每次遍历都放一个最小的数到首位,共遍历数组长度的次数
C++代码实现
数组
#include <vector>
class Solution {
public:
std::vector<int> sortArray(std::vector<int>& nums) {
int n=nums.size();
int k;
for (int j=n-1;j>0;j--){
for (int i=n-1;i>0;i--){
if(nums[i]<nums[i-1]){
k=nums[i];
nums[i]=nums[i-1];
nums[i-1]=k;
}
}
}
return nums;
}
};
时间复杂度和直接插入排序完全一致,也过不了测试