標籤:style class blog code color 使用
給定一個數組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[])
#include<algorithm>using namespace std;bool cmp(int a,int b){ return(a>b);}void sort(int input[], int n, int output[]){ /*int small ; //冒泡排序法 for(int i=1;i<n;i++) { for(int j=0;j<n-i;j++) { if(input[j]<input[j+1]) { int temp = input[j]; input[j] = input[j+1]; input[j+1]=temp; } } }*/ sort(input,input+n,cmp);//在自己寫的函數名是sort的情況下,也可以使用#include<algorithm>裡面的sort函數 for(int i=0;i<n;i++) cout<<input[i]<<" "; int mid = n/2; output[mid]=input[0]; int iBig = mid-1,iSmall = mid+1; for(int i=1;i<n;) { if(iBig>=0) output[iBig--]=input[i++]; if(iSmall<n) output[iSmall++]=input[i++]; }}