一起创业网-为互联网创业者服务

程序c语言排序怎么写

在C语言中,有多种排序算法可供选择,每种算法都有其特定的应用场景和性能特点。下面将介绍几种常见的排序方法,并提供它们的实现代码和简要说明。

1. 使用标准库函数 `qsort`

`qsort` 是C语言标准库提供的一个快速排序函数,适用于任何类型的数据。它的使用非常简单,只需要提供一个比较函数即可。

```c

include

include

// 比较函数,升序排序

int compare(const void* a, const void* b) {

return (*(int*)a - *(int*)b);

}

int main() {

int arr[] = {5, 2, 9, 1, 5, 6};

int n = sizeof(arr) / sizeof(arr);

// 使用 qsort 排序

qsort(arr, n, sizeof(int), compare);

// 输出结果

for (int i = 0; i < n; i++) {

printf("%d ", arr[i]);

}

printf("\n");

return 0;

}

```

2. 冒泡排序(Bubble Sort)

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

```c

include

void bubble_sort(int arr[], int len) {

for (int i = 0; i < len - 1; i++) {

for (int j = 0; j < len - 1 - i; j++) {

if (arr[j] > arr[j + 1]) {

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

}

int main() {

int arr[] = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5};

int len = sizeof(arr) / sizeof(arr);

// 计算数组长度

bubble_sort(arr, len);

// 打印排序后的数组

for (int i = 0; i < len; i++) {

printf("%d ", arr[i]);

}

printf("\n");

return 0;

}

```

3. 选择排序(Selection Sort)

选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

```c

include

void selection_sort(int arr[], int len) {

for (int i = 0; i < len - 1; i++) {

int min_idx = i;

for (int j = i + 1; j < len; j++) {

if (arr[j] < arr[min_idx]) {

min_idx = j;

}

}

if (min_idx != i) {

int temp = arr[i];

arr[i] = arr[min_idx];

arr[min_idx] = temp;

}

}

}

int main() {

int arr[] = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5};

int len = sizeof(arr) / sizeof(arr);

// 计算数组长度

selection_sort(arr, len);

// 打印排序后的数组

for (int i = 0; i < len; i++) {

printf("%d ", arr[i]);

}

printf("\n");

return 0;

}

```

4. 插入排序(Insertion Sort)

插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。