交换排序-C#实现
2024-10-16 22:30:45
交换排序包括:冒泡排序和快速排序
具体代码如下:
冒泡排序:
/// <summary>
/// 冒泡排序
/// 稳定性:稳定
/// 时间复杂度:O(n2)
/// </summary>
public static int[] BubbleSort(int[] array)
{
int temp = ;
for (int i = ; i < array.Length - ; i++)
{
for (int j = ; j < array.Length - ; j++)
{
if (array[j] < array[j + ])
{
temp = array[j];
array[j] = array[j + ];
array[j + ] = temp;
}
}
}
return array;
}
快速排序:
/// <summary>
/// 快速排序 分治法
/// 稳定性:不稳定
/// 时间复杂度:最理想 O(nlogn) 最差时间O(n^2)
/// </summary>
public static void QuickSort(int[] array, int left, int right)
{
if (left < right)
{
int i = left;
int j = right - ;
int middle = array[(left + right) / ];
while (true)
{
while (i < right && array[i] < middle) { i++; };
while (j > && array[j] > middle) { j--; };
if (i >= j) break;
array[i] = array[i] + array[j];
array[j] = array[i] - array[j];
array[i] = array[i] - array[j];
if (array[i] == array[j]) j--;
}
QuickSort(array, left, i);
QuickSort(array, i + , right);
}
}
最新文章
- 从零开始学 Java - CentOS 下安装 Nginx
- MPAndroidChart 教程
- Echarts3 使用教程
- LINQ标准查询操作符详解(转)
- C# 命名参数【转】
- 【转】Android:Animation的简单学习--不错
- POJ 2186.Popular Cows (强连通)
- [FreeProxy]FreeProxy代理服务器端软件介绍 之 sock 5
- Redis系列(2)之数据类型
- JavaSE_ API常用对象 总目录(11~14)
- CVE-2016-0143 漏洞分析(2016.4)
- 点击 Button触发事件将GridView1 CheckBox勾选的行添加到GridView2中
- 【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析
- 自动化测试&#160;接口自动化及UI自动化测试平台设计演示
- MongoDB数据创建与使用
- RTTI和反射小结
- Python2.7-codecs
- springmvc DispatchServlet初始化九大加载策略(二)
- Linear Regression and Maximum Likelihood Estimation
- 用JavaScript,获取Table中指定的行、列