分析
将数组第一个元素认为是已经排序过的。外层循环是控制待排序的元素,内层循环是在有序序列中进行插入。 而且比较也是从认为是有序序列的最后一个元素开始比较,即待排序元素的前一个。
#include<stdio.h>
#include<vector>
using namespace std;
class MyClass
{
public:
vector<int> sortArray(vector<int>& nums) {
for (int j = 1; j < nums.size(); j++)
{
int tmp = nums[j];//待排序的第一个元素
int i = j - 1;
while (i >= 0 && tmp < nums[i])
{
nums[i+1] = nums[i];
--i;
}
nums[i + 1] = tmp;
}
return nums;
}
};