C#实现冒泡排序和插入排序算法
冒泡排序算法
冒泡排序算法是一种基本的排序算法,其基本思想是通过对相邻的元素进行比较和交换,逐渐把待排序的元素交换到相应的位置上。
在C#中,实现冒泡排序非常简单,代码示例如下:
public static void BubbleSort(int[] arr)
{
int len = arr.Length;
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
代码中给出了一个静态方法 BubbleSort ,该方法接受一个整数数组作为输入,按照冒泡排序的方法排序这个数组。具体实现中,用两层循环嵌套,外层循环控制排序的趟数,内层循环实现元素交换。通过比较相邻元素的大小,如果前面的元素大于后面的元素,则交换它们的位置。每趟排序可以确定一个最大值,将最大值放到最后的位置,排序趟数共(len-1)次即可完成排序。
下面给出一个示例,演示如何使用 BubbleSort 方法来对一个整数数组进行排序:
int[] arr = { 5, 1, 6, 2, 4, 3 };
BubbleSort(arr);
foreach (int a in arr)
{
Console.Write(a + " ");
}
输出结果为:1 2 3 4 5 6,说明该方法能够正常工作并正确排序整数数组。
插入排序算法
插入排序算法是另一种基本排序算法,其基本思路是将一个待排序的元素插入到已经排好序的序列中,从而得到一个包含这个元素的排好序的新序列。
在C#中,实现插入排序也非常简单,代码示例如下:
public static void InsertionSort(int[] arr)
{
int len = arr.Length;
for (int i = 1; i < len; i++)
{
int j = i - 1;
int temp = arr[i];
while (j >= 0 && arr[j] > temp)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
代码中给出了一个静态方法 InsertionSort ,该方法接受一个整数数组作为输入,按照插入排序的方法排序这个数组。具体实现中,使用一个外层循环,从数组第二个元素开始遍历,用一个临时变量temp保存当前正在排序的元素。内层循环中,嵌套一个while循环,不断地将前面有序部分的元素往后移动,如此一来可以与当前正在排序的元素temp比较。如果前面有序部分的元素比temp大,则将这个元素向后移动一位。当找到一个比temp小的元素时或循环到了数组的开头时,将当前的temp元素插入到这个位置上,插入就完成了。循环执行,直到i=len-1时,数组就已经排好序了。
下面给出一个示例,演示如何使用 InsertionSort 方法来对一个整数数组进行排序:
int[] arr = { 5, 1, 6, 2, 4, 3 };
InsertionSort(arr);
foreach (int a in arr)
{
Console.Write(a + " ");
}
输出结果为:1 2 3 4 5 6,说明该方法能够正常工作并正确排序整数数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现冒泡排序和插入排序算法 - Python技术站