利用学到的数据结构知识,实现至少五种不同的排序算法。并分析各算法的时间复杂度和空间复杂度。用c语言,并且是一个程序中实现
时间: 2024-12-17 15:49:19 浏览: 11
在C语言中,我们可以利用学到的数据结构知识实现五种常见的排序算法:
1. **冒泡排序(Bubble Sort)**:
- 时间复杂度:最坏、平均和最好的情况都是O(n^2),其中n是元素个数。
- 空间复杂度:常数,不需要额外的空间。
```c
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
2. **选择排序(Selection Sort)**:
- 时间复杂度:无论输入是什么状态,都是O(n^2)。
- 空间复杂度:常数,不需要额外空间。
```c
void selection_sort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
阅读全文