c语言实现插入排序函数
时间: 2023-08-05 15:15:04 浏览: 101
以下是C语言实现插入排序函数的示例代码:
```c
void insertionSort(int arr[], int n)
{
int i, key, j;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i - 1;
/* Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position */
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
```
该函数接受两个参数,一个整数数组 arr 和数组大小 n,它使用插入排序算法对数组进行排序。插入排序的基本思想是将未排序的元素插入到已排序的部分中,以此逐步构建有序序列。在循环中,我们将第 i 个元素作为键 key,并将其插入到前 i-1 个元素中的正确位置。为了找到正确的位置,我们将键与前面的元素进行比较,并将较大的元素向右移动,直到找到键的正确位置。最后,我们将键插入到正确的位置中。
可以通过以下方式调用 insertionSort 函数:
```c
int main()
{
int arr[] = { 12, 11, 13, 5, 6 };
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
return 0;
}
```
在上面的示例中,我们创建了一个包含五个整数的数组,并将其作为参数传递给 insertionSort 函数。然后,我们在主函数中打印排序后的数组。
阅读全文