方法:插入排序
具体步骤:
1、当数组为空时,直接插入数据;当数组不为空时,遍历数组寻找合适的位置进行插入;这样得到的数组就行排序好的。 2、获取数据流的中位数。
时间复杂度:o(n)。
空间复杂度:o(n)。
class Solution {
public:
vector<int> res;
void Insert(int num) {
//数组为空时,直接插入数据
if (res.empty())
res.push_back(num);
//数组不为空时,需要找对位置插入数据
else {
int i = 0;
while (num >= res[i] && i < res.size()) {
i++;
}
res.insert(res.begin() + i, num);
}
}
double GetMedian() {
int length = res.size();
if (length % 2 == 1)
return res[length / 2];
else {
double num1 = res[length / 2];
double num2 = res[length / 2 - 1];
return (num1 + num2) / 2;
}
}
};
上述方法插入时,寻找位置可以使用二分查找,而不是直接遍历,能够降低时间复杂度。

京公网安备 11010502036488号