C#,初学琼林(03)——计算数组最小、最大值(Min, Max)的源程序

搜索数组的最小/最大元素

假设我们有一个 n 元素数组,我们想在其中找到一个最小(或最大)元素。a 是一个索引从 0 到 n-1 的数组 。它的元素将被标记为:a[0], a[1],a[2],a[3],...,a[n-1]。

要找到最小元素,我们将采取以下步骤:

  • 开始时,我们将使用数组中的第一个值初始化结果,即 a[0],
  • 然后我们将遍历数组的下一个元素(从第二个开始),如果数组的给定元素小于我们的结果,我们将通过将此元素分配给它来更新我们的结果,
  • 遍历所有元素后,我们将得到数组中最小的元素。
     

基础代码

private void button1_Click(object sender, EventArgs e)
{
    int[] a = { 10, -5, 2, 3, 88, 6, -19, 23 };

    int min = a[0];
    for(int i=1; i<a.Length; i++)
    {
        if (a[i] < min)
        {
            min = a[i];
        }
    }

    int max = a[0];
    for(int i=1; i<a.Length-1; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
        }
    }

    MessageBox.Show("数组最小值 = " + min + "\n最大值 =" + max, "计算数组最大、最小值");
}

简约代码

先从小到大的排序。

private void button1_Click(object sender, EventArgs e)
{
    int[] a = { 10, -5, 2, 3, 88, 6, -19, 23 };
    Array.Sort(a);
    MessageBox.Show("数组最小值 = " + a[0] + "\n最大值 =" + a[a.Length-1], "计算数组最大、最小值");
}

第一个元素就是最小值;最后一个元素是最大值。

速度?超快!

中值(不是平均值哦!)是多少?

int mv = a[a.Length / 2];

数组排序的几个要点

Array 类是一个抽象类,是所有数组的基类。用方括号表示数组会创建一个派生自 Array 类的新类,这个类可以使用 Array 类定义的方法和属性。

 Array 有一个静态方法给数组元素排序,该种元素类型必须实现 Icompare 接口。而简单类型(如 int,string 类型,他们已经实现了该接口,可以直接使用 sort 方法进行排序)。


整体升序:Array.Sort(A);
整体降序:先升序,再反转Array.Reverse(A);
局部升序: Array.Sort(A,2,4);//从索引为2的元素开始的4个元素进行升序
局部降序:Array.Reverse(A,2,3);//对索引为2的元素开始的3个元素进行反转,这是接着Array.Sort执行的。
 

猜你喜欢

转载自blog.csdn.net/beijinghorn/article/details/129892984
今日推荐