如上
解决方案 »
- 求用C#编写的Activex的视频或者书籍
- 请教Winform进度条怎样改变颜色?
- 请问有关声明和定义的问题
- C#中使用FindWindwsEx的疑惑
- 在c#中怎么把excel中时间格式的单元格转换为字符串格式??
- 大家有空帮忙吗?无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型
- asp.net调试问题,请教
- 怎样使文本框中输入得字符只能是数字
- sql语句如何对字符串做加号操作~
- using agentobjects需要怎么做?
- 安装包在安装时,怎麽更改config文件?
- System.Drawing.Color 无法付值给 DataTable.Rows[x][y]的变量问题
找最大值和最小值
初学程序,只是想用C#实现一下,原理我知道了,但代码写不出来,请好心的大虾们帮一下吧,感激不尽
找最大值和最小值
初学程序,只是想用C#实现一下,原理我知道了,但代码写不出来,请好心的大虾们帮一下吧,感激不尽
array1.Sort().
array1[0] array1[array1.Count-1]
就OK了.
应该是:Array.Sort(array1)静态方法.
int min = array1[0], max = array1[0];//从第二个数字开始找是不是有更小的或者更大的
for (int i = 1; i < array1.Length; i++)
{
if (array1[i] < min)
min = array1[i];
if (array1[i] > max)
max = array1[i];
}// 完成
string[] number = new string[1];
number = result.Split('$');
try
{
num = number.Length;
min = Convert.ToDouble(number[1]);//Min为价格的最小值
max = Convert.ToDouble(number[1]);//Max为价格的最大值
for(int i=2;i<num;i++) //比较价格的大小
{
if(min>Convert.ToDouble(number[i]))
{
min = Convert.ToDouble(number[i]);
}
if(max<Convert.ToDouble(number[i]))
{
max = Convert.ToDouble(number[i]);
}
}
result = min+"-"+max; //输出Min和Max的范围
}
catch(Exception)
{
return "";
}这是以前写的一个,参考下哈
没必要做那么多的重复工作.
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] array1 = new int[9] { 12, 4, 20, 8, 49, 3, 6, 14, 8 };
Console.WriteLine(Max(array1, 0, array1.Length - 1));
}
static int Max(int[] ia,int i,int j)
{
if (i == j)
return ia[i];
if (i + 1 == j)
return ia[i] > ia[j] ? ia[i] : ia[j];
int k = (j+i)/ 2;
int max1=Max(ia,i,k);
int max2=Max(ia,k+1,j);
return max1 > max2 ? max1 : max2;
} }
}手边没有书 可能没书上的代码优美 but it works 求最小值只要稍加改动即可
using System.Collections;
class MainClass
{
public static int BinaryMax(int[] arr, int m, int n)
{
if (m >= n - 1)
return arr[m] >= arr[n] ? arr[m] : arr[n];
else
return BinaryMax(arr, 0, m) >= BinaryMax(arr, m + 1, n) ? BinaryMax(arr, 0, m) : BinaryMax(arr, m + 1, n);
}
public static int BinaryMin(int[] arr, int m, int n)
{
if (m >= n - 1)
return arr[m] < arr[n] ? arr[m] : arr[n];
else
return BinaryMin(arr, 0, m) <= BinaryMin(arr, m + 1, n) ? BinaryMin(arr, 0, m) : BinaryMin(arr, m + 1, n);
}
public static void BinarySort(int[] arr, out int max, out int min)
{
int len = arr.Length;
max = BinaryMax(arr, 0, len - 1);
min = BinaryMin(arr, 0, len - 1);
} static void Main()
{
int[] arr = new int[10] { 5, 6, 4, 9, 1, 3, 7, 8, 2, 0 };
int max = 0;
int min = 0;
BinarySort(arr, out max, out min);
Console.WriteLine("The max number is " + max);
Console.WriteLine("The min number is " + min);
}
}
BinaryMax(arr, 0, m) >= BinaryMax(arr, m + 1, n) ? BinaryMax(arr, 0, m) : BinaryMax(arr, m + 1, n);
会造成重复计算——会很伤性能