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();
     
            }
     
     
        }
    }
     
  • 相关阅读:
    请求浏览器使用chrome查看http请求
    输入数据问题一百一十二:C语言合法标识符(2)
    方法调用代理代码改进
    串字符串问题一百一十三:Palindromes _easy version
    删除系统Win7系统盘越来越小,系统盘清理技巧
    配置编译linux下QT程序编译时的错误:QMAKESPEC has not been set, so configuration cannot be deduced.
    整数实例java处理大整数
    触发器课程SQL Server 知识梳理九 触发器的使用
    输出整数回溯法解决素数环
    类注解Spring注解自动注入Bean
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/9117307.html
Copyright © 2011-2022 走看看