「算法原理与实现」插入排序(Insertion Sort)
2019-10-08 本文已影响0人
307656af5a04
插入排序具体实现
////////////////////////////////////////////////////////////////////////////
// 插入排序
///////////////////////////////////////////////////////////////////////////
// brief: 插入排序
// @param:[in] numbers 待排序的数组
// @param:[in] n 排序数组的长度
// @returnValue int 表示返回值的标记
int InsertionSort(int *numbers, int n)
{
if(numbers == NULL)
return -1;
int i = 0, j = 0, temp = 0;
for(i = 1; i < n; i++) // 循环遍历每一个元素
{
temp = numbers[i]; // 将numbers[i]赋值给temp
j = i - 1;
while(j >= 0 && temp < numbers[j]) // 由小到大排序
{
numbers[j + 1] = numbers[j]; // 将大的元素向前放
j--;
}
// 如果插入的数比之前的大,将numbers[j] 与 numbers[j + 1]互换
numbers[j + 1] = temp;
}
return 0;
}