编程实现插入排序算法,并分析算法的时间复杂度。c语言代码,利用指针完成
时间: 2023-11-10 22:10:10 浏览: 89
插入排序算法的C语言实现
4星 · 用户满意度95%
以下是C语言代码实现插入排序算法:
```
void insertion_sort(int *arr, int len) {
int i, j, key;
for (i = 1; i < len; 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;
}
}
```
时间复杂度分析:
插入排序算法的时间复杂度为O(n^2)。因为算法需要两重循环,外层循环需要n次,内层循环最坏情况下需要比较n-1次,所以总的时间复杂度为O(n^2)。但是在最好情况下,即数组已经有序的情况下,内层循环只需要比较一次就能确定元素的位置,所以时间复杂度为O(n)。
阅读全文