题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n ;
int idx = 1;
/*
思路:根据二叉搜索树的中根遍历是从小到大的特点,先把值排序。然后中根遍历(这里树用数组存,1-n,
root的左结点就是root*2 , 右结点是root*2 +1 ),从小到大把值存入node中
*/
void Inorder(int root , vector<int> &order , vector<int> &node){
if(root > n) return ;
Inorder(root * 2 , order,node); // 左子树
node[root] = order[idx++];
Inorder(root * 2 + 1, order,node); // 右子树
}
int main(){
cin >> n;
vector<int> order(n + 1);
vector<int> node(n + 1);
for(int i = 1 ; i <= n; i++){
cin >> order[i];
}
sort(order.begin() + 1,order.end());
Inorder(1 , order , node); // 中根遍历
for(int i = 1; i <= n ; i++) cout << node[i] << " ";
return 0;
}