交换排序包括:冒泡排序和快速排序

具体代码如下:

冒泡排序:

        /// <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);
}
}

最新文章

  1. 从零开始学 Java - CentOS 下安装 Nginx
  2. MPAndroidChart 教程
  3. Echarts3 使用教程
  4. LINQ标准查询操作符详解(转)
  5. C# 命名参数【转】
  6. 【转】Android:Animation的简单学习--不错
  7. POJ 2186.Popular Cows (强连通)
  8. [FreeProxy]FreeProxy代理服务器端软件介绍 之 sock 5
  9. Redis系列(2)之数据类型
  10. JavaSE_ API常用对象 总目录(11~14)
  11. CVE-2016-0143 漏洞分析(2016.4)
  12. 点击 Button触发事件将GridView1 CheckBox勾选的行添加到GridView2中
  13. 【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析
  14. 自动化测试&#160;接口自动化及UI自动化测试平台设计演示
  15. MongoDB数据创建与使用
  16. RTTI和反射小结
  17. Python2.7-codecs
  18. springmvc DispatchServlet初始化九大加载策略(二)
  19. Linear Regression and Maximum Likelihood Estimation
  20. 用JavaScript,获取Table中指定的行、列

热门文章

  1. 使用Spark进行搜狗日志分析实例——map join的使用
  2. 12月4日学习爬虫007.使用Urllib模块进行简单网页爬取
  3. selenium+python启动浏览器出错,安装浏览器驱动
  4. jmeter的学习路线
  5. Traceur
  6. 2018-CVTE中央研究院-自然语言处理算法工程师-电话初面问题
  7. linux文件系统与存储结构
  8. tuxedo 提供buildserver命令编译服务器进程
  9. iptables-save命令
  10. vi编辑器之删除操作