C语言中的插入排序是一种简单而有效的排序算法,其时间复杂度为O(n^2)。下面是使用插入排序算法对一个整数数组进行排序的示例代码:
void insertion_sort(int arr[], int n) { int i, j, key; for (i = 1; i < n; i++) { key = arr[i]; j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } }
该算法从数组的第二个元素开始,将其与前面的元素逐个比较,直到找到其正确的位置为止。每次将当前元素与已排序的子数组中的元素进行比较,如果比已排序的子数组中的元素小,则将已排序的子数组中的元素向右移动一个位置,以便插入当前元素。
可以使用上面的插入排序函数来对任何整数数组进行排序,例如:
#include <stdio.h> int main() { int arr[] = {5, 2, 4, 6, 1, 3}; int n = sizeof(arr) / sizeof(arr[0]); insertion_sort(arr, n); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
该程序将输出排序后的整数数组:1 2 3 4 5 6。
相关推荐:C语言代码实现冒泡排序法实例
评论