从第2个数据开始依次与位于其前面的数据进行比较,当该数据小于其前面的某个元素时停止此次迭代,转到下一个元素进行比较。
在用该数据比较的过程中,进行交换只是位于前面的数据,只有当本次迭代结束的时候才会将该数据重新放入数组。
int main(int argc, char** argv)
{
vector<int>nums = { 3,2,3,1,2,4,5,5,6 };
for (int i = 1; i<nums.size(); ++i) {
int tmp = nums[i], j = i;
for (;i > 0 && nums[j - 1] > tmp;j--)
nums[j] = nums[j - 1];
nums[j] = tmp;
}
system("pause");
return 0;
}