class Program
    {


        static void Main(string[] args)
        {


            int[] arr = arrInsert(100000000);
            double mid = medium(arr, arr.Length-1);



            Console.Write(mid);

            Console.ReadKey();
        }

        static  int quick_sort(int[] a ,int left,int right)
        {
            if(left>right)
            {
                return 0;
            }    
            int i,j,t,key;
            key=a[left];
            i=left;
            j=right;
            while(i!=j)
            {
                while(i<j&&a[j]>=key)
                {
                  j--;
                }
       
                while(i<j&&a[i]<=key)
                {
                    i++;
                }
                if(i<j)
                {
                    t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
            }
            a[left]=a[i];
            a[i]=key;
            return i;
        }
    static  double medium(int[] a,int n)
    {
        int left=0;
        int right=n;
        int mid=(left+right)/2;
        int num;
        while(true)
        {
            num=quick_sort(a,left,right);
            if(num==mid)
            {
              break;
            }     
            if(num<mid)
            {
              left=num+1;
            }
            if(num>mid)
            {
              right=num-1;
            }     
        }
        return (n%2==0)?a[mid]:(double)(a[mid]+a[mid+1])/2;
    }


    static int[] arrInsert(int count)
    {
        int[] arr = new int[count];
        Random r1 = new Random();
        int i = 0;
        while (i < count)
        {
            int num = r1.Next(0, 10000);
            arr[i] = num;
            i++;
        }
        return arr;
    }

   
    }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。