计算数组的最大值/最小值/总和/平均值
- 随机长度, 随机值组成的整数数组
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个数中最大的拉到最右边, 故一定可以排序