zoukankan      html  css  js  c++  java
  • 冒泡排序——算法系列

    冒泡算法:

    思想:从头至尾遍历一个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

  • 相关阅读:
    IDAPython学习(一)
    自动提取文件系统---binwalk(一)
    Scapy Fuzz实现——S7协议从建连到“正常交流“(一)
    工控系统的指纹识别技术
    揭秘VxWorks——直击物联网安全罩门
    VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
    路由器文件系统与提取
    python 调试技巧
    拿下id_rsa
    elasticsearch 7.1 401 Unauthorized
  • 原文地址:https://www.cnblogs.com/7ants/p/2954223.html
Copyright © 2011-2022 走看看