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

推荐订阅源

Y
Y Combinator Blog
B
Blog
S
SegmentFault 最新的问题
Vercel News
Vercel News
博客园 - 聂微东
宝玉的分享
宝玉的分享
C
Check Point Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
V
V2EX
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
博客园 - 司徒正美
博客园_首页
Last Week in AI
Last Week in AI
博客园 - 叶小钗
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
腾讯CDC
J
Java Code Geeks

博客园 - 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