zoukankan      html  css  js  c++  java
  • c# 选择排序

    基本思想 

       每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

     
      选择排序是稳定的排序方法。 

    排序过程

      【示例】:

     

      初始关键字 [49 38 65 97 76 13 27 49]

     

      第一趟排序后 13 [38 65 97 76 49 27 49]

     

      第二趟排序后 13 27 [65 97 76 49 38 49]

     

      第三趟排序后 13 27 38 [97 76 49 65 49]

     

      第四趟排序后 13 27 38 49 [76 97 65 49 ]

     

      第五趟排序后 13 27 38 49 49 [97 65 76]

     

      第六趟排序后 13 27 38 49 49 65 [97 76]

     

      第七趟排序后 13 27 38 49 49 65 76 [97]

     

      最后排序结果 13 27 38 49 49 65 76 97


       C# 选择排序代码 


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //选择排序
                List<int> a = new List<int>();
                List<int> b = new List<int>();
     
                a.Add(50);
                a.Add(80); a.Add(49); a.Add(10); a.Add(66);
     
                int pos = 0;
     
                int loopCount = 0;

                for (int i =0; i<a.Count-1;i++)
                {
                    loopCount++;
                   
                    if (a[pos] < a[i + 1])
                    {
                        pos = i + 1;
                    }
     
                    if ((i + 1) == a.Count -1)
                    {
                        b.Add(a[pos]);
                        a.RemoveAt(pos);
     
                        pos = 0;
                       
                        i = -1;
                    }
                }
     
                var result = b.Concat(a);
                List<int> resultList = result.ToList();
     
                Console.WriteLine(result.ToString());
                Console.ReadLine();
     
            }
     
     
        }
    }
     
  • 相关阅读:
    sdibt 1251 进化树问题
    hdu 2014 位运算
    poj 3254 状态压缩dp
    hdu 5040bfs+优先队列 需要存状态
    zoj 3812 状压dp
    C++标准库:bitset 用法整理&&zoj 3812
    BZOJ 2572 高速公路
    BZOJ 1036 树的统计
    BZOJ 1035 Risk
    BZOJ 1034 泡泡堂
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/9117307.html
Copyright © 2011-2022 走看看