c++插入排序

来源:互联网 发布:linux下安装magento 编辑:程序博客网 时间:2024/06/15 01:15
void InsertSort(int arr[], int length)
{
if (arr == nullptr || length <= 0)
{
return;
}




int tmp = 0;
for (int i = 1; i < length; ++i)
{
for (int j = 0; j < i; ++j)
{
if (arr[i] > arr[i - 1])//当前元素比前一个元素大,直接当前元素后移
break;
if (arr[i] > arr[j])//查找子序列中大于arr[i]元素的位置
{
continue;
}
int num = i - j; //记录需要移动元素的数量
int pos = i; //记录需要移动的元素的位置
int tmp = arr[i];
while (num--)
{
arr[pos] = arr[pos - 1];
--pos;
}
arr[pos] = tmp;
break;

}
}


}