zoukankan      html  css  js  c++  java
  • 算法2(直选)

    【直接选择排序】

    4 2 5 3 9 6 8

    直接选择排序的方式和人类的想法还是比较相似的,排除一些火星移民。

    基本思想:第n次,从数组第n个位置开始,选一个最小的数,然后放到这个n位置上,从上面的这个例子就是

    2 4 5 3 9 6 8
    2 3 4 5 9 6 8

    大概看懂了哦?下面是代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Diagnostics;
    
    namespace 直接选择排序
    {
        class Program
        {
            static void Main(string[] args)
            {
                for (int i = 1; i < 5; i++)
                {
                    List list = new List();
                    for (int j = 0; j < 2000; j++)
                    {
                        Thread.Sleep(1);
                        list.Add(new Random((int)DateTime.Now.Ticks).Next(0, 10000));
                    }
                    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 = DirecteSort(list);
                    watch.Stop();
                    Console.WriteLine("快速选择排序耗费时间:" + watch.ElapsedMilliseconds);
                    Console.WriteLine("输出前是十个数:" + string.Join(",", result.Take(10).ToList()));
                    Console.WriteLine("----------------------------------------------------------");
                }
                Console.Read();
            }
    
            static List DirecteSort(List list)
            {
                for (int i = 0; i < list.Count-1; i++)
                {
                    for (int j = i+1; j  list[j])
                        {
                            list[i] = list[i] ^ list[j];
                            list[j] = list[i] ^ list[j];
                            list[i] = list[i] ^ list[j];
                        }
                    }
                }
                return list;
            }
        }
    }

    image

  • 相关阅读:
    java动态注册Filter,Servlet,Listener
    java防止html脚本注入
    java中常用的几种跨域方式
    backbone 要点知识整理
    创建对象-constructor丢失的问题
    css3 动画(animation)-简单入门
    sass安装
    sass安装步骤
    javascript how sort() work
    javascript 获取调用属性的对象
  • 原文地址:https://www.cnblogs.com/TivonStone/p/2291274.html
Copyright © 2011-2022 走看看