- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Diagnostics;
- using System.Threading;
- namespace BubbleSort
- {
- public 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();
- 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()));
- }
- }
- //冒泡排序算法
- static List<int> BubbleSort(List<int> list)
- {
- int temp;
- //第一层循环: 表明要比较的次数,比如list.count个数,肯定要比较count-1次
- for (int i = 0; i < list.Count - 1; i++)
- {
- //list.count-1:取数据最后一个数下标,
- //j>i: 从后往前的的下标一定大于从前往后的下标,否则就超越了。
- for (int j = list.Count - 1; j > i; j--)
- {
- //如果前面一个数大于后面一个数则交换
- if (list[j - 1] > list[j])
- {
- temp = list[j - 1];
- list[j - 1] = list[j];
- list[j] = temp;
- }
- }
- }
- return list;
- }
- }
- }
冒泡排序
最新推荐文章于 2022-04-29 23:24:15 发布