当我们需要对一组数字进行排序时,可以使用插入排序算法。插入排序算法是一种简单而有效的排序算法,适用于数据量较小的排序场景。
以下是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语言插入排序算法的两个示例。使用插入排序算法,我们可以快速、简单地对数字数组进行排序。