惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
博客园 - 【当耐特】
V
Visual Studio Blog
GbyAI
GbyAI
V
V2EX
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
量子位
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件

博客园 - smallnest

希尔排序 插入排序 Comb排序 Gnome sort 鸡尾酒排序 奇偶排序 快速排序 algorithm in c# 开发人员最喜爱的十大免费的Visual Studio插件(下) 开发人员最喜爱的十大免费的Visual Studio插件(上) 一种获取重载泛型方法的方式 [游戏]五子连珠 发布一个记账软件---流水记账 轻松编写您自己的拖拉机算法,进行算法大战 拖拉机大战更新了 拖拉机大战1.1.0.320发布,更多新功能 拖拉机大战新春贺岁版发布 翻译助手0.1 visual studio 2005 常用类型的图标
冒泡排序
smallnest · 2009-12-19 · via 博客园 - smallnest

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

代码

1 using System;
2  using System.Collections.Generic;
3
4 namespace Com.Colobu.Algorithm.Exchange
5 {
6 /// <summary>
7 /// 冒泡排序是这样实现的:
8 ///
9 /// 1. 首先将所有待排序的数字放入工作列表中。
10 /// 2. 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。
11 /// 3. 重复2号步骤(倒数的数字加1。例如:第一次到倒数第二个数字,第二次到倒数第三个数字,依此类推...),直至再也不能交换。
12 ///
13 /// 平均时间复杂度:O(n^2)
14 /// Stability:Yes
15 /// </summary>
16 public class BubbleSortAlgorithm
17 {
18 public static void BubbleSort<T>(IList<T> szArray) where T:IComparable
19 {
20 int i;
21 int j;
22 Http://www.clobu.com
23
24 T temp; //交换变量
25 bool swapped = false;
26 for (i = szArray.Count - 1; i >= 0; i--)
27 {
28 for (j = 1; j <= i; j++)
29 {
30 if (szArray[j - 1].CompareTo(szArray[j]) > 0)
31 {
32 temp = szArray[j - 1];
33 szArray[j - 1] = szArray[j];
34 szArray[j] = temp;
35 swapped = true;
36 }
37 }
38 if (!swapped)
39 break;
40 }
41 }
42 }
43 }
44