当我们需要对数据进行排序时,排序算法就显得非常重要。C#语言中提供了多种排序算法,我们可以根据具体场景选择不同的排序算法。本文中,我将详细介绍C#七大经典排序算法系列(上)。
七大经典排序算法
C#提供的七种经典排序算法包括:
- 冒泡排序(Bubble Sort)
- 选择排序(Selection Sort)
- 插入排序(Insertion Sort)
- 快速排序(Quick Sort)
- 希尔排序(Shell Sort)
- 归并排序(Merge Sort)
- 堆排序(Heap Sort)
接下来,我将依次讲解每种排序算法的思想、步骤和实现方式。
冒泡排序
冒泡排序是一种简单的排序算法,它不断地交换相邻元素的位置,直到没有元素再需要交换为止。具体实现过程如下:
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;
}
}
}
下面是一个示例说明:
int[] arr = { 3, 9, 4, 2, 8, 5, 1, 7, 6 };
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;
}
}
}
foreach (int item in arr)
{
Console.Write(item + " ");
}
// 输出:1 2 3 4 5 6 7 8 9
选择排序
选择排序是一种简单的排序算法,它不断地选择未排序序列中的最小元素,将其放到已排序序列的末尾。具体实现过程如下:
for (int i = 0; i < arr.Length - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[j] < arr[minIndex])
{
minIndex = j;
}
}
if (minIndex != i)
{
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
下面是一个示例说明:
int[] arr = { 3, 9, 4, 2, 8, 5, 1, 7, 6 };
for (int i = 0; i < arr.Length - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[j] < arr[minIndex])
{
minIndex = j;
}
}
if (minIndex != i)
{
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
foreach (int item in arr)
{
Console.Write(item + " ");
}
// 输出:1 2 3 4 5 6 7 8 9
除了以上两种排序方式,本文还将介绍剩下的五种排序算法的思想、步骤和实现方式,以供读者参考。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#七大经典排序算法系列(上) - Python技术站