zhyDaDa的个人站点

计算数组的最大值/最小值/总和/平均值

  • 随机长度, 随机值组成的整数数组
int[] nums = { 1, 2, 3, 4, 5, 6, -7, 8, 9, 90 };
int max = nums[0];
max = int.MinValue;
int min = nums[0];
min = int.MaxValue;
int sum = 0;
for (int i = 0; i < nums.Length; i++)
{
    if (nums[i] >= max)
    {
        max = nums[i];
    }
    if (nums[i] <= min)
    {
        min = nums[i];
    }
    sum += nums[i];
}
Console.WriteLine("数组的\n最大值是{0}\n最小值是{1}\n总和是{2}\n平均数是{3}", max, min, sum, sum / nums.Length);

max int中的最小值, 给min int中的最大值
但是这不如赋值数组中的一项来的简单直接

翻转数组

  • 将每个元素倒序排列

    思路: 头尾互换, 交换次数是N/2, 例如5个数换2次

string[] s = { "我", "是", "好人", ";", "精", "英", "计", "划" };
for (int i = 0; i < s.Length / 2; i++)
{
    string temp = s[i];
    s[i] = s[s.Length - 1 - i];
    s[s.Length - 1 - i] = temp;
}
for (int i = 0; i < s.Length; i++)
{
    Console.Write(s[i]);
}
Console.ReadKey();

冒泡排序

  • 将数组中的元素按大小排序
  • 过程: 依次和后面的元素比较, 只要大于就交换一次

将[5,4,3,2,1,0]升序排序

| 比较的次数 | 与之比较的数 | 交换的次数 |
| :——–: | :———-: | :——–: |
| 第1次 | 4,3,2,1,0 | 5 |
| 第2次 | 3,2,1,0,5 | 4 |
| 第3次 | 2,1,0,4,5 | 3 |
| 第4次 | 1,0,3,4,5 | 2 |
| 第5次 | 1,2,3,4,5 | 1 |

int[] nums = { 5, 4, 3, 2, 1, 0 }; 
for (int i = 0; i < nums.Length-1; i++) //控制比较的次数, 六个数比5次, Length-1=5
{
    for (int j = 0; j < nums.Length-1-i; j++)   //控制每次比较中交换的次数, 枚举找规律
    {
        if (nums[j] > nums[j + 1])
        {
            int temp = nums[j + 1];
            nums[j + 1] = nums[j];
            nums[j] = temp;
        }
    }
}
for (int i = 0; i < nums.Length; i++)
{
    Console.Write(nums[i]);
}

相当于每次都把前面的i-1个数中最大的拉到最右边, 故一定可以排序

Avatar photo
我是 zhyDaDa

前端/UI/交互/独立游戏/JPOP/电吉他/游戏配乐/网球/纸牌魔术

发表回复