排序二 选择排序

来源:互联网 发布:spss如何快速录入数据 编辑:程序博客网 时间:2024/05/21 10:56

选择排序(Selecting Sort)

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 —百度百科

  • 时间复杂度:最好 O(n)=O(n²);平均O(n)=O(n²);最差O(n)=O(n²)
  • 空间复杂度:O(n)=O(1)
  • 稳定性:    不稳定
  • 优势:      交换次数为O(n)

算法描述

  1. 定义低位index=0
  2. 从低位index遍历数组查找最小元素
  3. 将最小元素与低位index元素交换
  4. index加一。若start等于数组长度则排序结束,否则执行2
    Selection Sort
    图片来自维基百科

排序示例

数组S: [9,1,5,3,8,7]
第一趟:[1,9,5,3,8,7] –index=0,min=1
第二趟:[1,3,5,9,8,7] –index=1,min=3
第三趟:[1,3,5,9,8,7] –index=2,min=5
第四趟:[1,3,5,7,8,9] –index=3,min=7
第五趟:[1,3,5,7,8,9] –index=4,min=8
第六趟:[1,3,5,7,8,9] –index=5,min=9

示例代码

public static void SelectSort(int[] S){    int minIndex;    for (int i = 0; i < S.Length; i++){        minIndex = i;        for (int j = i + 1; j < S.Length; i++){            if (S[minIndex] > S[j]){                minIndex = j;            }        }        S.Swap(i, minIndex);    }}

文中若有什么错误,欢迎留言指正。

转载请保留出处:http://blog.csdn.net/x1060549/article/details/78775024