排序算法演示程序C语言
时间: 2024-12-26 20:25:03 浏览: 4
### C语言实现排序算法示例
#### 桶排序算法
桶排序是一种高效的排序方法,适用于特定范围内整数的排序。此算法拥有线性时间复杂度的优势,在处理大量数据时表现出色。
```c
#include <stdio.h>
#define MAX 1000
void bucketSort(int array[], int num) {
int count[MAX];
int output[num];
for (int i = 0; i < MAX; ++i)
count[i] = 0;
for (int i = 0; i < num; ++i)
++count[array[i]];
for (int i = 1; i <= MAX - 1; ++i)
count[i] += count[i - 1];
for (int i = num - 1; i >= 0; --i) {
output[count[array[i]] - 1] = array[i];
--count[array[i]];
}
for (int i = 0; i < num; ++i)
array[i] = output[i];
}
```
这段代码实现了桶排序的功能[^1]。
#### 冒泡排序算法
冒泡排序是经典的基础排序算法之一,其特点是通过多次遍历待排序列表并逐次交换相邻元素来完成
相关问题
c语言冒泡排序算法演示
### C语言冒泡排序示例代码
在C语言中,冒泡排序是一种简单的排序算法,通过重复遍历要排序的列表来工作。每次比较相邻元素并按需要交换它们的位置。这个过程会持续进行直到不需要再做任何交换为止。
以下是完整的C语言冒泡排序实现:
```c
#include <stdio.h>
void bubbleSort(char arr[], int n) {
int i, j;
char temp;
for (i = 0; i < n-1; i++) {
// 提前退出标志位
int swapped = 0;
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// 交换操作
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = 1;
}
}
// 如果没有发生交换,则说明已经有序
if (!swapped)
break;
}
}
int main() {
char c[10] = {'d', 'e', 'f', 'n', 'j', 'c', 'e', 'b', 'f', 'a'};
printf("原始数组: ");
for(int k=0;k<10;++k){
putchar(c[k]);
}
putchar('\n');
bubbleSort(c, 10);
printf("排序后的数组: ");
for(int k=0;k<10;++k){
putchar(c[k]);
}
putchar('\n');
return 0;
}
```
这段程序定义了一个`bubbleSort`函数用于执行实际的排序逻辑,并在一个测试用例中展示了如何调用它[^1]。
插入排序c语言算法演示
以下是插入排序的C语言算法演示:
```c
void InsertionSort(int a[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = a[i];
j = i - 1;
while (j >= 0 && a[j] > key) {
a[j + 1] = a[j];
j = j - 1;
}
a[j + 1] = key;
}
}
```
阅读全文