c语言实现插入法排序实例

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语言代码实现冒泡排序法实例