本實例將長度為 10 的數組原地逆序:首尾元素兩兩交換,直到中間相遇。
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#define N 10
int main() {
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int i, t;
printf("原始數組是:\n");
for (i = 0; i < N; i++) printf("%d ", a[i]);
for (i = 0; i < N/2; i++) {
t = a[i];
a[i] = a[N-1-i];
a[N-1-i] = t;
}
printf("\n排序後的數組:\n");
for (i = 0; i < N; i++) printf("%d ", a[i]);
printf("\n");
return 0;
}
原始數組是:
0 1 2 3 4 5 6 7 8 9
排序後的數組:
9 8 7 6 5 4 3 2 1 0
時間 O(n),空間 O(1),原地算法經典實現。