Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- void merge_sort(int num[],int lo,int hi){
- int i,j,k;
- if(lo==hi) return;
- int mid=(lo+hi)/2;
- merge_sort(num,lo,mid);
- merge_sort(num,mid+1,hi);
- int temp[1000001];
- for(i=lo,j=mid+1,k=lo;k<=hi;k++){
- if(i==mid+1) temp[k]=num[j++];
- else if(j==hi+1) temp[k]=num[i++];
- else if(num[i]<num[j]) temp[k]=num[i++];
- else temp[k]=num[j++];
- }
- for(k=lo;k<=hi;k++){
- num[k]=temp[k];
- }
- }
- int findMedian(int arr[], int n){
- merge_sort(arr,0,n-1);
- int mid=ceil(n/2);
- return arr[mid];
- }
- int main(){
- int n;
- int a[1000001];
- scanf("%d",&n);
- for(int i=0;i<n;i++){
- scanf("%d",&a[i]);
- }
- printf("%d",findMedian(a,n));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement