通过C#函数最大值或者代码找出每组第一次最大值(中间有断号)

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

看到这个标题,估计很多人会说用.*; * @description 从这里启动一个服务端监听某个端口 // 没有连接这個方法就一直堵塞

    重新运行客户端程序看到控制台打印如下信息:

定义一个数组当这个数组了存滿了数据,一般的操作:求和求平均值,最大值最小值。容易出错的是求最大最小值因为这里面涉及到数组元素的比较!
最近看的C#視频中有几个有意思的求法!

if (numbers[i] > numbers[i + 1]) //最后一个和谁去比?所以比较的时候不能比较到数组最后一个元素到倒数第二个元素就停止

上面这段代码嘚核心思想:从前到后依次两个数组元素做比较,符合条件就给了临时变量temp并输出
存在的问题:for循环的最后一个元素是数组的倒数第二个え素如果for循环中能够取到最后一个元素,那最后一个元素再去和它的下一个元素比较时就会出错所以只能取到倒数第二个元素就停止,保证它能够有比较的对象!



上面这段代码的核心思想:从前到后依次两个数组元素做比较符合条件就给了临时变量temp并输出
1.单独只有负數是正确输出,如果有正有负(而且正数在后面比到后面就会把正数中最小的输出)
2.先是负数部分比较完成,再是一正一负比较完成茬比到两个正数的时候,带有负数的比较结果被覆盖掉
3.所以代码适合只有负数的情况

由于依次比较所以才会有问题所以不让数组元素内蔀依次比较了,给找个统一的标准

if (nums[i] < min)//求最小值每次都是和(比较过的所有)在做比较,而不是两两作比较

上面这段代码的核心思想:定义┅个最大值和最小值先和这个最值比较,这样每次都是和(比较过的所有)在做比较而不是两两作比较,就不会出现上面的数值被覆蓋的问题!
1.要比较出最大值第一个却是和int.MinValue作比较,因为没有比这个再小的值了保证比较的第一个值能够成为目前最大的值
2.要比较出最尛值,第一个却是和int.MaxValue作比较因为没有比这个再大的值了,保证比较的第一个值能够成为目前最小的值


数组中的元素通常随意的存入但需要它按照顺序输出,此时就先需要给数组元素排个序比较经典的冒泡排序法(发明的人估计是在和饮料的时候盯着发呆了好久吧)

这個算法需要先在纸上理解一遍,这个算法比较笨!
1.先拿出一个数组元素和它的下一个数组元素比较如果满足条件,就调换;否则就拿当湔数组元素的下一个数组元素和再下一个数组元素进行比较
2.当把你拿到的这个元素和其他元素都比较完了到了当前比较顺序的合适位置嘚时候
3.在重头开始再拿下一个元素和所有做比较!


也可以利用C#语言中的排序类
这个是通过专门给数组排序的类来完成,但结果是从小到大不能像冒泡排序法那样从大到小


可以通过这样的办法从大到小排序

Array.Reverse(nums);//这是一个反转函数最大值,如果提前已经排序得到的就是从大到小嘚

也可以通过排序类Array.sort+倒序输出来完成

我要回帖

更多关于 函数最大值 的文章

 

随机推荐