C# 中常见的算法及相应的代码示例
时间: 2024-10-25 10:05:35 浏览: 23
C# 中有很多常用的算法,包括排序、搜索、图形处理、动态规划等。这里提供一些基本算法及其简单的代码示例:
1. **排序算法** - 例如冒泡排序:
```csharp
void BubbleSort(int[] arr)
{
for (int i = 0; i < arr.Length - 1; i++)
{
for (int j = 0; j < arr.Length - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. **查找算法** - 例如线性查找:
```csharp
int LinearSearch(int[] arr, int target)
{
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == target)
return i;
}
return -1; // 如果未找到目标,返回-1
}
```
3. **字符串操作** - 例如KMP算法(用于字符串匹配):
```csharp
public int KMP(string text, string pattern)
{
int[] lps = ComputeLPS(pattern);
int index = 0;
for (int i = 0; i < text.Length; i++)
{
while (index > 0 && text[i] != pattern[index])
index = lps[index - 1];
if (text[i] == pattern[index])
index++;
if (index == pattern.Length)
return i - pattern.Length + 1;
}
return -1;
}
private int[] ComputeLPS(string pattern)
{
// LPS array
int[] lps = new int[pattern.Length];
int len = 0;
for (int i = 1; i < pattern.Length; i++)
{
if (pattern[i] == pattern[len])
{
len++;
lps[i] = len;
}
else
{
if (len != 0)
len = lps[len - 1];
else
lps[i] = 0;
}
}
return lps;
}
```
阅读全文