选择排序——算法系列

选择排序:

思想:选择排序的思想也非常简单,就是从一堆数中选出最小值,然后和顶部元素互换,之后再用同样的方法排序剩余的数,最终得到排序的结果。

代码:

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 = SelectionSort(list);
                watch.Stop();
                Console.WriteLine("\n选择排序耗费时间:" + watch.ElapsedMilliseconds);
                Console.WriteLine("输出前是十个数:" + string.Join(",", result.Take(10).ToList()));
                
            }
            Console.ReadLine();
        }
        //快速排序算法
        static List<int> SelectionSort(List<int> list)
        {
            for (int i = 0; i < list.Count-1; i++)
            {
                int tempIndex = i;
                for (int j = i + 1; j < list.Count; j++)
                {
                    if (list[tempIndex] > list[j])
                        tempIndex = j;
                }
                int temp = list[i];
                list[i] = list[tempIndex];
                list[tempIndex] = temp;
            }
            return list;
        }
    }
}

总结:选择排序也是比较容易理解的,非常直观。但是性能不是很好。

posted @ 2013-03-11 17:27  大器天下  阅读(127)  评论(0编辑  收藏  举报