gpt4 book ai didi

c# - 从列表中查找最小值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:26 24 4
gpt4 key购买 nike

我如何在这里以最有效的方式构建算法以从列表中找到最小值?我知道这个列表还没有以最好的方式完成,但是,有什么办法吗?我尝试了几种方法,但似乎没有让它有效地工作..

谢谢。

class MainClass
{

public class List
{

public int maxSize = 50;
public int MaxSize
{
get
{
return maxSize;
}
set
{
maxSize = value;
}
}


public int firstEmpty = 0;
public int FirstEmpty
{
get
{
return firstEmpty;
}
set
{
firstEmpty = value;
}
}

public int[] data;


public List()
{
data = new int[maxSize];
}


public int returnValueAtIndex(int i)
{
return data[i];
}


public void setValueAtIndex(int v, int i)
{
data[i] = v;
}

}



public static int FIRST(List L)
{
if (END(L) > 0)
return 0;
else
return -1;
}

public static int END(List L)
{
return L.FirstEmpty;
}

public static int NEXT(int p, List L)
{
if (p >= 0 && p < L.MaxSize && p < END(L))
return p+1;
else
return - 1;
}

public static int PREVIOUS(int p, List L)
{
if (p >= 0 && p < L.MaxSize && p <= END(L))
return p-1;
else
return -1;
}

public static int LOCATE (int x, List L)
{
int i = 0;
while (i<END(L) && RETRIEVE(i, L) != x)
{
i++;
}
if (i != END(L))
return i;
else
return -1;
}

public static int RETRIEVE(int p, List L)
{
if (p >= 0 && p < END(L))
return L.returnValueAtIndex(p);
else
return -1;
}

public static void INSERT(int x, int p, List L)
{
if (p >= 0 && p < L.MaxSize && p <= END(L))
{
if (p == END(L))
{
L.setValueAtIndex(x, p);
}
else
{
for (int i = END(L); i > p; i--)
{
L.setValueAtIndex(L.returnValueAtIndex(i - 1), i);
L.setValueAtIndex(x, p);
}
}
L.FirstEmpty = END(L) + 1;
}
else
Console.WriteLine("Alkiota ei voitu lisätä");
}

public void DELETE(int p, List L)
{
if (p >= 0 && p < END(L))
{
for (int i = p; i < p - 1; i++)
{
L.setValueAtIndex(L.returnValueAtIndex(i + 1), i);
}
L.FirstEmpty = END(L) - 1;
}

}
public void MAKENULL(List L)
{
L.FirstEmpty = 0;
}

public static void PRINT(List L)
{
Console.WriteLine("Listan sisältö:");
for (int i = 0; i < END(L); i++)
{
Console.Write(L.returnValueAtIndex(i) + " ");
}
Console.WriteLine();
}





public static void Main(string[] args)
{

List testilista = new List();
INSERT(2, END(testilista), testilista);
INSERT(7, END(testilista), testilista);
INSERT(9, END(testilista), testilista);
INSERT(12, END(testilista), testilista);
INSERT(9, END(testilista), testilista);
INSERT(38, END(testilista), testilista);


Console.WriteLine("testilista");
PRINT(testilista);



Console.ReadLine();


}
}

最佳答案

在 C# 中执行此操作的最简单方法是使用 LinQ:

var minValue = data.Min();

如果你想要最高值:

var maxValue = data.Max();

关于c# - 从列表中查找最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com