标签:style blog http color io for 2014 div log
给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。
例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}
函数接口 void sort(int input[], int n, int output[])
1 #include<stdio.h> 2 void sort(int input[], int n, int output[]) 3 { 4 int i,j,k; 5 for (i=0; i < n-1; i++) 6 for (j=1; j < n-i; j++) 7 { 8 if (input[j-1] < input[j]) 9 { 10 int t = input[j-1]; 11 input[j-1] = input[j]; 12 input[j] = t; 13 } 14 } 15 for (int i=0; i < n; i++) 16 printf("%d ",input[i]); 17 printf("\n"); 18 if (n % 2 == 1) 19 { 20 i = n / 2; 21 j = n /2 + 1; 22 k = 0; 23 output[i--] = input[k++]; 24 for (; k < n; ){ 25 output[i--] = input[k++]; 26 output[j++] = input[k++]; 27 } 28 } 29 else 30 { 31 j = n / 2; 32 i = n / 2 - 1; 33 for (k=0; k < n; ){ 34 output[j++] = input[k++]; 35 output[i--] = input[k++]; 36 } 37 } 38 } 39 int main() 40 { 41 int n,input[100],output[100]; 42 scanf("%d",&n); 43 for (int i=0; i < n; i++) 44 { 45 scanf("%d",&input[i]); 46 } 47 sort(input,n,output); 48 for (int i=0; i < n; i++) 49 printf("%d ",output[i]); 50 printf("\n"); 51 }
标签:style blog http color io for 2014 div log
原文地址:http://www.cnblogs.com/george-cw/p/3936181.html