6大排序算法C的代码
时间: 2024-10-17 09:06:50 浏览: 5
以下是C语言中常见的六种排序算法的部分示例:
1. **插入排序**[^1]:
```c
// 插入排序
void InsertionSort(int* arr, int size) {
int end = 0;
int i = 0;
for (i = 0; i < size - 1; i++) {
end = i;
int temp = arr[end + 1];
while (end >= 0 && temp < arr[end]) {
arr[end + 1] = arr[end];
end--;
}
arr[end + 1] = temp;
}
}
```
2. **快速排序**:
- **非递归实现**(这里未提供完整的优化版本):
```c
void QuickSort(int* arr, int low, int high) {
if (low < high) {
// 选择基准数和分区
int pivotIndex = Partition(arr, low, high);
// 递归对左右子数组进行排序
QuickSort(arr, low, pivotIndex - 1);
QuickSort(arr, pivotIndex + 1, high);
}
}
int Partition(int* arr, int low, int high) {
// ...
}
```
请注意,由于篇幅限制,这里只给出了部分关键代码片段。实际的快速排序通常会涉及基准数的选择和分割操作,以及递归调用。完整的快速排序优化代码可能包括随机化基准选择以提高平均性能,如三值取中法。
阅读全文