# C語言中怎么實現排序
在C語言中,排序算法可以通過多種方式實現,常見的有冒泡排序、選擇排序和快速排序等。以下是幾種基礎實現方法:
## 1. 冒泡排序
通過相鄰元素比較交換,將最大元素逐步“冒泡”到末尾:
```c
void bubbleSort(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])
swap(&arr[j], &arr[j+1]);
}
每次選擇最小元素放到已排序序列末尾:
void selectionSort(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;
swap(&arr[i], &arr[min_idx]);
}
}
通過基準值分區實現高效排序:
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high); // 分區函數
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
實際開發中建議使用標準庫的qsort()
函數:
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
qsort(arr, n, sizeof(int), cmp);
選擇算法時需考慮數據規模和性能需求。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。