c# lambda 表达式 冒泡排序
时间: 2023-06-17 21:07:17 浏览: 149
以下是使用 lambda 表达式实现的冒泡排序示例代码:
```csharp
int[] array = { 5, 3, 8, 4, 2 };
for (int i = 0; i < array.Length - 1; i++)
{
for (int j = 0; j < array.Length - i - 1; j++)
{
if ((array[j] > array[j + 1]) == true)
{
Swap(ref array[j], ref array[j + 1]);
}
}
}
// 输出排序后的数组
foreach (int i in array)
{
Console.Write(i + " ");
}
// 定义 Swap 方法
static void Swap<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;
}
```
在以上代码中,我们使用了 Lambda 表达式 `(array[j] > array[j + 1]) == true` 来比较大小,这样可以使代码更加简洁。同时,我们还定义了一个 `Swap` 方法来交换数组中的元素。
相关问题
C#冒泡排序lambda
以下是使用Lambda表达式实现的C#冒泡排序的示例代码:
```csharp
public static void BubbleSort<T>(IList<T> sortArray, Func<T, T, bool> comparison)
{
int n = sortArray.Count;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (comparison(sortArray[j], sortArray[j + 1]))
{
T temp = sortArray[j];
sortArray[j] = sortArray[j + 1];
sortArray[j + 1] = temp;
}
}
}
}
```
使用Lambda表达式作为比较函数,可以根据需要自定义排序规则。比较函数接受两个参数,并返回一个bool值,表示第一个参数是否应该排在第二个参数之前。
以下是使用Lambda表达式进行冒泡排序的示例代码:
```csharp
List<int> numbers = new List<int> { 5, 2, 8, 1, 9 };
BubbleSort(numbers, (a, b) => a > b);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
```
这段代码将列表中的数字按照从小到大的顺序进行排序,并输出排序后的结果。
阅读全文