以下是使用C语言编写的直接插入排序算法,并附带了一个简单的测试函数: ```c #include // 直接插入排序函数 void insertionSort(int arr[], int n) { int i, j, temp; for (i = 1; i < n; i++) { temp = arr[i]; // 临时保存待插入元素 j = i - 1; // 从前一个元素开始 // 如果前一个元素比当前元素大,就将前一个元素后移 while (j >= 0 && arr[j] > temp) { arr[j + 1] = arr[j]; j--; } // 将临时保存的元素插入到正确位置 arr[j + 1] = temp; } } // 测试函数 void testInsertionSort() { int arr[] = {12, 11, 13, 5, 6, 7}; int n = sizeof(arr) / sizeof(arr[0]); printf("原始数组: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); insertionSort(arr, n); printf("排序后的数组: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { testInsertionSort(); return 0; } ``` 运行这段代码,你将看到`testInsertionSort`函数中的整数数组`arr`被直接插入排序算法排序前后的输出。排序后的数组将以升序排列。

点赞(0)
×
关注公众号,登录后继续创作
或点击进入高级版AI
扫码关注后未收到验证码,回复【登录】二字获取验证码
发表
评论
返回
顶部