首页 > 代码库 > 【2012】数组(2)
【2012】数组(2)
给定一个数组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++]; }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。