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();
     
            }
     
     
        }
    }
     
  • 相关阅读:
    Codeforces Round #624 (Div. 3) D. Three Integers
    Codeforces Round #624 (Div. 3) C. Perform the Combo(前缀和)
    Codeforces Round #624 (Div. 3) B. WeirdSort(排序)
    Codeforces Round #624 (Div. 3) A. Add Odd or Subtract Even(水题)
    洛谷P1130红牌(简单DP)
    洛谷P1044栈(DP)
    Codeforces 1315C Restoring Permutation
    MATLAB字符串处理
    MATLAB矩阵操作和算术运算符
    MATLAB基本概念和变量
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/9117307.html
Copyright © 2011-2022 走看看