zoukankan      html  css  js  c++  java
  • 求n个数中的最大或最小k个数

      //求n个数中的最小k个数
            public static void TestMin(int k, int n)
            {
                Random rd = new Random();
                int[] myArray = new int[n];
                int[] newArray = new int[k];

                for (int i = 0; i < n; i++)
                {
                    // randomNumber = rd.Next(10000, 10000000);
                    myArray[i] = rd.Next(1, 1000);
                    Console.WriteLine(myArray[i]);
                }
                Console.WriteLine("**********************");
                for (int i = 0; i < k; i++)
                {
                    newArray[i] = myArray[i];
                    Console.WriteLine(newArray[i]);
                }
                Console.WriteLine("**********************");
                Array.Sort(newArray);

                for (int j = k; j < n; j++)
                {
                    int max = newArray[k - 1];
                    //  Console.WriteLine("The last five" + newArray[i]);
                    if (max < myArray[j])
                    {
                        continue;
                    }
                    else
                    {
                        newArray[k - 1] = myArray[j];
                        Array.Sort(newArray);
                    }

                }

                foreach (int i in newArray)
                    Console.WriteLine(i);
            }
            //求n个数中的最大k个数
            public static void TestMax(int k, int n)
            {
                Random rd = new Random();
                int[] myArray = new int[n];
                int[] newArray = new int[k];

                for (int i = 0; i < n; i++)
                {
                    // randomNumber = rd.Next(10000, 10000000);
                    myArray[i] = rd.Next(1, 1000);
                    Console.WriteLine(myArray[i]);
                }
                Console.WriteLine("**********************");
                for (int i = 0; i < k; i++)
                {
                    newArray[i] = myArray[i];
                    Console.WriteLine(newArray[i]);
                }
                Console.WriteLine("**********************");
                Array.Sort(newArray);

                for (int j = k; j < n; j++)
                {
                    int max = newArray[0];
                    //  Console.WriteLine("The last five" + newArray[i]);
                    if (max > myArray[j])
                    {
                        continue;
                    }
                    else
                    {
                        newArray[0] = myArray[j];
                        Array.Sort(newArray);
                    }

                }

                foreach (int i in newArray)
                    Console.WriteLine(i);
            }

  • 相关阅读:
    多播委托和匿名方法再加上Lambda表达式
    委托
    从警察抓小偷看委托
    StringBuilder
    C#修饰符详解
    数据结构与算法之队列
    数据结构与算法之栈
    win10重复安装
    网络编程基础
    PrintPreviewControl
  • 原文地址:https://www.cnblogs.com/dasydong/p/3280963.html
Copyright © 2011-2022 走看看