c_cpp 以最大最小形式重新排列数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 以最大最小形式重新排列数组相关的知识,希望对你有一定的参考价值。

/*
http://ideone.com/QqIPO2
http://www.practice.geeksforgeeks.org/problem-page.php?pid=408
http://qa.geeksforgeeks.org/6604/rearrange-an-array-in-maximum-minimum-form
*/

#include <iostream>
#include <string>
#include <vector>
using namespace std; 

int main() {
	int t, n;
	cin >> t;
	while(t--){
		cin >> n;
		int a[101], temp[101];
		for(int i=0; i<n; i++)
			cin >> a[i];
		
		int i=0, j=n-1;
		int idx = 0;
		while(i<j){
			temp[idx++] = a[j];
			temp[idx++] = a[i];
			j--;
			i++;
		}
		if(n & 1)
			temp[idx++] = a[i];
		
		for(int i=0; i<n; i++){
			a[i] = temp[i];
		}
		for(int i=0; i<n; i++){
			cout << a[i];
			cout << ((i==n-1) ? "\n" : " ");
		}
	}
	return 0;
}

以上是关于c_cpp 以最大最小形式重新排列数组的主要内容,如果未能解决你的问题,请参考以下文章

通过重新排列数组来最大化数组绝对差的总和

c_cpp 使用最少比较次数的数组的最大值和最小值

c_cpp 使用最少比较次数的数组的最大值和最小值

c_cpp 使用分而治之的方法查找未排序数组中的最小值和最大值

从最小堆切换到最大堆而不重新排列内部数组

LeetCode31. 下一个排列