C程序 插入排序

  • Post category:C

当我们需要对一组数字进行排序时,可以使用插入排序算法。插入排序算法是一种简单而有效的排序算法,适用于数据量较小的排序场景。

以下是C语言实现插入排序的代码:

void insertionSort(int arr[], int n) {
   int i, key, j;
   for (i = 1; i < n; i++) {
       key = arr[i];
       j = i - 1;
       while (j >= 0 && arr[j] > key) {
           arr[j+1] = arr[j];
           j = j - 1;
       }
       arr[j+1] = key;
   }
}

我们可以将排序前的数组作为输入参数传入这个函数,该函数使用插入排序算法对数组进行排序。

接下来,我们将演示如何使用这个插入排序函数来排序两组不同的数字数组。

示例一

第一组数字数组:

#include <stdio.h>

void insertionSort(int arr[], int n);

int main() {
   int arr[] = {12, 11, 13, 5, 6};
   int n = sizeof(arr)/sizeof(arr[0]);

   insertionSort(arr, n);

   for (int i = 0; i < n; i++)
       printf("%d ", arr[i]);

   return 0;
}

输出结果:

5 6 11 12 13

示例二

第二组数字数组:

#include <stdio.h>

void insertionSort(int arr[], int n);

int main() {
   int arr[] = {47, 25, 80, 96, 14};
   int n = sizeof(arr)/sizeof(arr[0]);

   insertionSort(arr, n);

   for (int i = 0; i < n; i++)
       printf("%d ", arr[i]);

   return 0;
}

输出结果:

14 25 47 80 96

以上就是使用C语言插入排序算法的两个示例。使用插入排序算法,我们可以快速、简单地对数字数组进行排序。