对于奇数个元素的数组,我们这样编写类C伪代码
for(i = 0 , j = SIZE - 1; i != j; i++, j–)
temp = array[i];
array[i] = array[j];
array[j] = temp;
对于偶数个元素的数组,我们这样编写类C伪代码:
for(i = 0, j = SIZE - 1; i < j; i++, j–)
temp = array[i];
array[i] = array[j];
array[j] = temp;
优化之后,我们发现 j = SIZE - i - 1 ,i < SIZE / 2而且当元素个数为偶数个时,i 不会等于 j 。综合后得出代码:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int main(int argc, char * argv[]){
int i, temp, array[SIZE] = {1,2,3,4,5,6,7,8,9,10};
for(i = 0; i < SIZE / 2; i++){
temp = array[i];
array[i] = array[SIZE - i - 1];
array[SIZE - i - 1] = temp;
}
for(i = 0; i < SIZE; i++)
printf("%d ",array[i]);
getchar();
return 0;
}