C語言是一種廣泛使用的編程語言,其應(yīng)用范圍非常廣泛。其中,排序算法是C語言中常見的一個應(yīng)用場景。本文將分享一些C語言實現(xiàn)排序的經(jīng)典代碼。
1. 冒泡排序
冒泡排序是一種簡單的排序算法,其基本思想是通過不斷交換相鄰的元素,將較大的元素逐步向后移動,從而實現(xiàn)排序。以下是C語言實現(xiàn)冒泡排序的代碼
```ctt) {t - 1; i++) { - i - 1; j++) {
if (arr[j] >arr[j + 1]) {p = arr[j];
arr[j] = arr[j + 1];
}
}
}
2. 選擇排序
選擇排序是另一種簡單的排序算法,其基本思想是從未排序的元素中選擇小的元素,將其放在已排序的序列末尾,直到所有元素均排序完成。以下是C語言實現(xiàn)選擇排序的代碼
```ctt) {tin - 1; i++) {in_idx = i;; j++) {in_idx]) {in_idx = j;
}
}pin_idx];in_idx] = arr[i];
}
3. 插入排序
插入排序是一種簡單的排序算法,其基本思想是將未排序的元素逐個插入到已排序的序列中,從而實現(xiàn)排序。以下是C語言實現(xiàn)插入排序的代碼
```csertiontt) {t i, j, key;; i++) {
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] >key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
4. 快速排序
快速排序是一種高效的排序算法,其基本思想是通過分治的方式將序列分成較小的子序列,然后遞歸地對子序列進(jìn)行排序,終實現(xiàn)整個序列的排序。以下是C語言實現(xiàn)快速排序的代碼
```cttt right) {t
if (left< right) {
pivot = left;
i = left;
j = right;
while (i< j) {
while (arr[i]<= arr[pivot] && i< right) {
i++;
}
while (arr[j] >arr[pivot]) {
j--;
}
if (i< j) {p = arr[i];
arr[i] = arr[j];
}
}p = arr[pivot];
arr[pivot] = arr[j];
quick_sort(arr, left, j - 1);
quick_sort(arr, j + 1, right);
}
以上是C語言實現(xiàn)排序的經(jīng)典代碼分享,希望對大家有所幫助。在實際應(yīng)用中,不同的排序算法適用于不同的場景,需要根據(jù)具體情況進(jìn)行選擇。