zoukankan      html  css  js  c++  java
  • C#排序算法的实现---选择排序

    一、算法原理

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

      选择排序算法的运作如下:

      1.对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置

      2.接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),               等到循环结束的时候,下标k的元素就是最小的数

      3.判断下标k的元素是不是第一个元素,否则就把下标k的元素和第一个元素交换

      4.以此类推

    二、算法分析

      选择排序的时间复杂度是O(n^2),是不稳定的排序算法。

    三、算法实现

    public class SelectionSort
        {
           public void Sort(int[] list)
           {
               int k = 0;
               for (int i = 0; i < list.Length - 1; i++)
               {
                   for (int j = i; j < list.Length; j++)
                   {
                       if (list[k] > list[j])
                           k = j;
                   }
                   if (i != k)
                   {
                       int temp = list[i];
                       list[i] = list[k];
                       list[k] = temp;
                   }
               }
           }
        }

      

  • 相关阅读:
    软件工程提问回顾与个人总结
    OO第二次单元总结
    OO第一次单元总结
    软件工程结对项目
    软件工程第一次阅读作业
    软件工程第0次个人作业
    结队作业
    软件工程第一次阅读作业
    软工第0次作业
    oo第四篇博客作业
  • 原文地址:https://www.cnblogs.com/DCLi/p/SelectionSort.html
Copyright © 2011-2022 走看看