.NET冒泡算法:三种C#冒泡排序算法例子
本文给出三种算法实现排序。方法1,3是微软的算法。方法2,是网上流传的算法。
【有人质疑,到底方法一,方法三是不是冒泡排序,但是,只能这么说,冒泡排序并没有一个明确的定义和标准,也不是某个人定义的定理,而是广大程序员多年以来不断完善设计的结果,如果从性能和应用上说,方法三是最好的;希望大家能够选择一个适合自己算法,无论如何,提供一个能解决问题的方案才是有效的,不要生搬硬套,不要读死书。也欢迎各位高手给出更好的算法,能够为新人学习作出一点点帮助。也希望大家平时写代码的时候尽量使用比较成熟的解决方案,不要试图去做类似于发明汽车轮子的事情。】
static void Main(string[] args)
{
/////////////////////////////// 方法一 /////////////////////////////////////////
int[] a = { 3, 4, 7, 10, 5, 9 };
var t = from x in a
orderby x
select x;
foreach (int i in t)
Console.WriteLine(i);
Console.WriteLine("..............................");
///////////////////////////// 方法二 ////////////////////////////////////////////
int[] list = { 190, 110, 15, 120, 550, 9, 60 };
for (int i = 0; i < list.Length; i++)
{
for (int j = i + 1; j < list.Length; j++)
{
if (list[i] > list[j])
{
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine("..............................");
//////////////////////////////// 方法三 ////////////////////////////////////////
int[] abc = { 3, 4, 1, 7, 1000, 5, 9 };
Array.Sort(abc);
for (int i = 0; i < abc.Length; i++)
{
Console.Write(abc[i].ToString() + "\n");
}
Console.WriteLine("..............................");
Console.ReadLine();
}
运行结果:
本文选自:http://hi.baidu.com/44498/blog/item/c18fee236666d4479358077c.html转载请说明。