冒泡算法:
思想:从头至尾遍历一个n长的序列,遍历n次,每次讲最小/最大的数移动到最顶端,之后遍历剩下的数,用同样的方法排序。
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Net; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { for (int i = 1; i <= 5; i++) { List<int> list = new List<int>(); //插入2k个随机数到数组中 for (int j = 0; j < 2000; j++) { Thread.Sleep(1); list.Add(new Random((int)DateTime.Now.Ticks).Next(0, 100000)); } Console.WriteLine("\n第" + i + "次比较:"); Stopwatch watch = new Stopwatch(); watch.Start(); var result = list.OrderBy(single => single).ToList();//这里这个single=>single不懂 watch.Stop(); Console.WriteLine("\n快速排序耗费时间:" + watch.ElapsedMilliseconds); Console.WriteLine("输出前是十个数:"+string.Join(",",result.Take(10).ToList()));//这里也不是很懂 watch.Start(); result = BubbleSort(list); watch.Stop(); Console.WriteLine("\n冒泡排序耗费时间:" + watch.ElapsedMilliseconds); Console.WriteLine("输出前是十个数:" + string.Join(",", result.Take(10).ToList()));//这里也不是很懂 } Console.ReadLine(); } //冒泡排序算法 static List<int> BubbleSort(List<int> list) { int temp; for (int i = 0; i < list.Count; i++) { for (int j = list.Count - 1; j > i; j--) { if (list[j] < list[j - 1]) { temp = list[j]; list[j] = list[j - 1]; list[j - 1] = temp; } } } return list; } } }
总结:
冒泡排序的特点是很直观,思想简单,但是性能不好。
http://www.cnblogs.com/huangxincheng/archive/2011/11/14/2249046.html