技术文摘
C#直接插入排序介绍
2025-01-02 03:43:28 小编
C#直接插入排序介绍
在C#编程中,排序算法是非常重要的一部分。直接插入排序作为一种简单且基础的排序算法,有着广泛的应用和独特的优势。
直接插入排序的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。具体来说,它从第二个元素开始,将其与前面已排好序的元素依次比较,如果该元素小于前面的某个元素,则将前面的元素后移,直到找到合适的位置插入该元素。
下面是一个用C#实现直接插入排序的示例代码:
class Program
{
static void InsertionSort(int[] arr)
{
int n = arr.Length;
for (int i = 1; i < n; ++i)
{
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
static void Main()
{
int[] arr = { 12, 11, 13, 5, 6 };
InsertionSort(arr);
foreach (int num in arr)
{
Console.Write(num + " ");
}
}
}
在这段代码中,外层循环遍历数组中的每个元素,内层循环用于将当前元素插入到已排好序的部分。
直接插入排序的时间复杂度在最好情况下为O(n),即数组已经有序时,只需进行n - 1次比较。最坏情况下为O(n²),例如数组是逆序的情况。平均时间复杂度也是O(n²)。空间复杂度为O(1),因为它只需要一个额外的空间来存储临时变量。
直接插入排序适用于数据量较小的情况,它是一种稳定的排序算法,即相等元素的相对顺序在排序前后不会改变。例如,在对学生成绩进行排序时,如果两个学生成绩相同,直接插入排序会保持他们原来的顺序。
直接插入排序虽然在处理大规模数据时效率不高,但对于小规模数据或者基本有序的数据,它是一种简单有效的排序方法,在C#编程中有着一定的实用价值。
- 移动端小标签完美实现垂直居中的方法
- JavaScript中为元素设置多个事件的方法
- 微信自定义分享图标尺寸是多大
- 网页照片转HTML结构方法,及用简历照片构建时组织结构与元素选择要点
- React 异步派生解析
- 前端进度条如何做到与设计稿一致
- Vue项目中动态创建虚拟Vue文件的方法
- JavaScript实现按钮互斥响应的方法
- Vue 项目里 iconfont 文件夹的放置位置
- 怎样调整微信分享图标尺寸
- Vue 中用 v-html 插入 em 标签后字体为何无斜体效果
- 借助 vue-color 库打造交互式色彩渐变页面的方法
- Vue 中 v-html 指令无法解析 EM 标签的原因
- Tomcat升级后请求出问题,怎么用JS拦截所有页面请求并处理
- CSS实现固定布局与遍历生成DIV,首项固定,其余按1234顺序排列方法