From 69ea5bf488ba772858b4449e4bce6b8fd1a6fb67 Mon Sep 17 00:00:00 2001 From: osc_61505645 <8765271+wjtwgm@user.noreply.gitee.com> Date: Sat, 4 Sep 2021 10:50:56 +0000 Subject: [PATCH] add math/qmidian.cpp. this program can find midian just need O(N), --- math/qmidian.cpp | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 math/qmidian.cpp diff --git a/math/qmidian.cpp b/math/qmidian.cpp new file mode 100644 index 000000000..d7bec5e60 --- /dev/null +++ b/math/qmidian.cpp @@ -0,0 +1,63 @@ +#include + +#include +using namespace std; +template +T get_mid(T* a, int l) +{ + a-=1; + int mid1_num,mid2_num; + mid1_num=1,mid2_num=2;//keep mid1numa[2]) + { + swap(mid1_num,mid2_num); + } + for( int i=3; i<=l; ++i) + { + if(i%2) + { + if(a[i]>a[mid1_num]&&a[i]a[mid2_num]) + { + mid1_num=mid2_num; + mid2_num=i; + continue; + } + + } + if(a[i]a[mid1_num]&&a[i]>n; + int a[n]; + for(int i=0; i>a[i]; + } + ans=get_mid(a,n); + cout<