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;
                   }
               }
           }
        }

      

  • 相关阅读:
    第二冲刺阶段个人博客
    单元测试
    软件工程个人总结
    梦断代码阅读笔记03
    梦断编码阅读笔记02
    梦断代码阅读笔记01
    padding margin
    MVC模式在Java Web应用程序中的实例分析
    小问题
    MVC理解
  • 原文地址:https://www.cnblogs.com/DCLi/p/SelectionSort.html
Copyright © 2011-2022 走看看