Online Compiler C

#include <stdio.h> void sort_array(int size, int a[]) { int i, j, nmin, c; for (i = 0; i < size ; i++) { nmin = i; for (j = i + 1; j < size; j++) { if (a[j] < a[nmin]) { nmin = j; } } if (nmin != i) { c = a[i]; a[i] = a[nmin]; a[nmin] = c; } } }
这段代码实现了一个选择排序算法,用于对整数数组进行升序排序。函数 `sort_array` 接收数组大小和数组本身,通过两层循环找到未排序部分的最小元素,并将其与当前位置交换。

- 注意:选择排序的时间复杂度是 O(n²),对于大规模数据效率较低,但代码逻辑本身是正确的。
- 提示:检查一下当数组中有重复元素时,排序结果是否符合预期?当前代码在遇到相等元素时不会交换,这没有问题,但可以思考一下是否所有情况都覆盖了。