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();
     
            }
     
     
        }
    }
     
  • 相关阅读:
    第二章 搭建Android开发环境
    彻底修改 Windows 系统用户名
    第一章 Android系统移植与驱动开发概述
    返回一个整数数组中最大子数组的和。
    返回一个二维整数数组中最大子数组的和。
    返回一个整数数组中最大的子数组的和。
    四则运算
    关于南方Cass的使用感受
    数据结构-王道2017-第3章 栈和队列-栈和队列的应用
    数据结构-王道2017-第3章 栈和队列-队列
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/9117307.html
Copyright © 2011-2022 走看看