在C語言中,逆序排列可以通過交換數組元素的方式實現。為了保證穩定性,我們需要確保在交換過程中,相等的元素不會發生位置變化。這可以通過遍歷數組并交換相鄰的元素來實現。
以下是一個簡單的示例,展示了如何使用C語言實現逆序排列并保證穩定性:
#include<stdio.h>
void reverse(int arr[], int n) {
for (int i = 0; i < n / 2; i++) {
// 交換相鄰的元素,確保穩定性
int temp = arr[i];
arr[i] = arr[n - 1 - i];
arr[n - 1 - i] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始數組:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, n);
printf("逆序后的數組:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
在這個示例中,我們首先定義了一個reverse
函數,它接受一個整數數組和數組的長度作為參數。然后,我們遍歷數組的前一半,并交換相鄰的元素。這樣,我們就可以在不破壞穩定性的情況下實現逆序排列。
在main
函數中,我們創建了一個整數數組并調用reverse
函數對其進行逆序排列。最后,我們打印出原始數組和逆序后的數組。