子数组换位算法c语言
时间: 2023-12-19 13:31:54 浏览: 27
以下是一个子数组换位算法的C语言实现:
```c
#include <stdio.h>
void swap(int arr[], int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void oddEvenSort(int arr[], int len) {
int isSorted = 0; // 标记是否已经排好序
while (!isSorted) {
isSorted = 1;
// 奇数位和相邻的偶数位比较
for (int i = 1; i < len - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
isSorted = 0;
}
}
// 偶数位和相邻的奇数位比较
for (int i = 0; i < len - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
isSorted = 0;
}
}
}
}
int main() {
int arr[] = {9, 3, 5, 4, 6, 2, 1, 8, 7};
int len = sizeof(arr) / sizeof(arr[0]);
oddEvenSort(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```