用csharp写一个万能排序方法
时间: 2023-12-29 18:46:28 浏览: 29
好的,以下是一个简单的 C# 万能排序方法:
```
public static void SortArray<T>(T[] inputArray) where T : IComparable
{
int i, j;
T temp;
for (i = 0; i < inputArray.Length - 1; i++)
{
for (j = i + 1; j < inputArray.Length; j++)
{
if (inputArray[i].CompareTo(inputArray[j]) > 0)
{
temp = inputArray[i];
inputArray[i] = inputArray[j];
inputArray[j] = temp;
}
}
}
}
```
该方法使用泛型来接受任何实现了 IComparable 接口的类型,然后通过冒泡排序的方式进行排序,最终将排序结果保存在原始数组中。
相关问题
用csharp写一个冒泡排序
好的,我可以回答这个问题。以下是用 C# 写的冒泡排序代码:
```
void BubbleSort(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
这是一个简单的冒泡排序算法,它可以对整数数组进行排序。
使用csharp写一个快速排序
使用 C# 实现快速排序的代码如下:
```
public void QuickSort(int[] arr, int left, int right)
{
if (left < right)
{
int pivot = Partition(arr, left, right);
QuickSort(arr, left, pivot - 1);
QuickSort(arr, pivot + 1, right);
}
}
private int Partition(int[] arr, int left, int right)
{
int pivot = arr[right];
int i = left;
for (int j = left; j < right; j++)
{
if (arr[j] < pivot)
{
Swap(arr, i, j);
i++;
}
}
Swap(arr, i, right);
return i;
}
private void Swap(int[] arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
使用方法:
```
int[] arr = { 3, 7, 8, 5, 2, 1, 9, 5, 4 };
QuickSort(arr, 0, arr.Length - 1);
```
需要注意的是,上述代码实现的是升序排序。如果需要降序排序,只需要将比较大小的条件改为 `arr[j] > pivot` 即可。