c语言中十种排序算法
时间: 2023-09-28 19:06:46 浏览: 54
在C语言中,常见的十种排序算法包括:
1. 冒泡排序(Bubble Sort)
2. 选择排序(Selection Sort)
3. 插入排序(Insertion Sort)
4. 希尔排序(Shell Sort)
5. 归并排序(Merge Sort)
6. 快速排序(Quick Sort)
7. 堆排序(Heap Sort)
8. 计数排序(Counting Sort)
9. 桶排序(Bucket Sort)
10. 基数排序(Radix Sort)
这些排序算法都有各自的特点和适用场景,可以根据具体的需求选择合适的算法来进行排序操作。
相关问题
c语言数据结构快速排序算法
快速排序是一种经典的排序算法,用于将一个无序的数组按照递增(或递减)的顺序进行排列。
以下是C语言实现快速排序算法的基本步骤:
1. 选择一个基准元素(通常是数组的第一个元素),将数组分为两部分:比基准元素小的部分和比基准元素大的部分。
2. 对于两个部分分别进行递归调用快速排序算法,直到每个部分的长度为1或0,即递归终止条件。
3. 将两个部分的排序结果合并,即将较小的部分放在基准元素的左侧,较大的部分放在右侧。
以下是C语言实现快速排序算法的示例代码:
```c
// 交换两个元素的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 获取基准元素的位置,用于划分数组
int partition(int arr[], int low, int high) {
int pivot = arr[low]; // 选择第一个元素作为基准元素
int i = low + 1;
int j = high;
while (i <= j) {
while (arr[i] < pivot) {
i++;
}
while (arr[j] > pivot) {
j--;
}
if (i < j) {
swap(&arr[i], &arr[j]);
} else {
break;
}
}
swap(&arr[low], &arr[j]);
return j;
}
// 快速排序递归函数
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1); // 对左侧部分递归调用快速排序
quickSort(arr, pivot + 1, high); // 对右侧部分递归调用快速排序
}
}
// 主函数
int main() {
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
// 输出排序结果
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
以上是一种基本的C语言实现快速排序算法的方法,通过选择合适的基准元素并进行递归划分,可以在平均情况下实现较高的排序效率。
c语言实现简单选择排序算法
以下是C语言实现简单选择排序算法的代码:
```c
// 交换两个数据
void Swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 选择排序
void SelectSort(int* arr, int size) {
int i = 0;
for (i = 0; i < size-1; i++) {
int min = i;
int j = 0;
for (j = i+1; j < size; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
Swap(&arr[i], &arr[min]);
}
}
```